Escribí mi propia función JS: ¿por qué no responde a los eventos de clic?
onload = * en lugar de onload()=*
En algunos navegadores, el script se carga por separado del cuerpo, por lo que su retorno document.getElementsByTagName("input") ; sin valor,
Primero escriba una función lista simple //? Solo acepte funciones como parámetros, almacene una función para cada llamada y ejecútela automáticamente una vez cuando se cargue la página
//ready(tufunción)
var?ready=(función?()?{
var?isReady?=?false,
funList?= ?[];
función?{
tipo de?||?(isReadyfn()? :?funList.push(fn))
} p>
función?readyCall()?{
isReady?=?true;
mientras(funList.length)?{
funList.shift ()()
}
}
if(document.addEventListener)?{
document.addEventListener(" DOMContentLoaded", ?función?()?{
document.removeEventListener("DOMContentLoaded",?arguments.callee,?false);
readyCall()
}, ?false)
}?{
document.attachEvent("onreadystatechange",?function?()?{
if?(document. readyState?= ==?" completo")?{
document.detachEvent("onreadystatechange",?arguments.callee);
readyCall()
} p>
}
}
}
}
¿regresar?
Otro Escribir una función para vincular eventos/** *?bind(objetivo, ?evento?nombre, ?evento?función) *?bind(control, nombre del evento (como "clic", excluyendo encendido), función de evento) *? Es decir, la función de evento fuerza el evento como el primer parámetro *? Para compatibilidad con navegadores más antiguos, preventDefault? */
var?bind?=?function? ?{
if(el.addEventListener)?{
el.addEventListener(nombre,?fn);
} más?+?nombre; p>
if?(el.attachEvent)?{
el.attachEvent(nombre, función()?{
var? args?=?Array.prototype.slice .call(argumentos),?ret?=?true;
si?{
args.unshift(ventana.event);
p>
si(!ev
ent.preventDefault)
event.preventDefault?=?function?()?{
ret?=?false;
};
if?(!event.stopPropagation)
event.stopPropagation?=?function?()?{
event.cancelBubble?=?true;
};
}
fn.apply(this,?args);
return?!old.list,?call;
if(noList)?{
¿llamar?=?el[nombre]? llamar?=?el[nombre]?{
var?list?=?call.list ,?l?=?list.length,
args?=?Array.prototype.slice.call(argumentos),?ie?=?! window.event,
ret?=?true,?run?=?true;
if?(!event.preventDefault)
event.preventDefault? =?función?()?{
ret?=?false;
};
si?(!event.stopPropagation)
event.stopPropagation?=?function?()?{
run?=?false;
};
if?(es decir)args. unshift(evento);
mientras?(l--? &&?run)
lista[i].apply(this,?args);
return?ret;
};
call.list?=?[];
if?(!noFunc)call.list.push(antiguo) ;
}
call.list.push(fn);
}
}
}
};
El tiempo es limitado, no se escribe ninguna función de desvinculación
Otra función para encontrar la función de control/** *?trans("#id") ? trans(".class")?trans("$nombre")?trans("tagName") */
función?=?c.match(/^[#\. \$]/ ) ?c:"";
return?typeof?el==="objeto"? &&
Object.prototype.toString.call(el).match(/\[ objeto ?HTML.*Elemento\]/)?el
:?typeof?el==="cadena"?&&
(el=(documento[
["getElementById", "getElementsByClassName", "getElementsByName", "getElementsByTagName"]
[{"#":0,"." :1,"$":2,"":3 } [c]]])(el.substring(c?:0)),c?[el]:el.length)?el:null;
Entonces es fácil vincular el evento listo ( función(
)){
var?fruta?=? trans("entrada");