Digamos que tengo un escenario donde tengo un complemento global (o al menos un complemento que se une a una matriz más amplia de eventos).interacciones de eventos jquery .live()
Este complemento toma un selector y le ata un clic en vivo. Algo en pseudo-jquery que podría tener este aspecto:
$.fn.changeSomething = function(){
$(this).live("change", function(){ alert("yo");});
}
En otra página, tengo un vivo algo de unión adicionales como esto:
$("input[type='checkbox']").live("click", function(){alert("ho");});
Dentro de este escenario, la casilla de verificación lo ideal sería llegar a ser vinculado a ambos eventos en vivo.
Lo que estoy viendo es que el evento de cambio se dispara como debería, y me avisan "yo". Sin embargo, al usar este evento de clic en vivo, nunca lo disparo. Sin embargo, al usar un enlace de clic explícito, SI lo golpeo.
La solución fácil es desencadenar un evento de clic al final del controlador de cambio en vivo, pero esto me parece jodido. ¿Algunas ideas?
Tenga en cuenta que esto está usando jquery 1.4.2 y solo se produce en IE8 (supongo que 6/7 también, pero no los he probado).
un ejemplo (que necesita jquery-1.4.2.min.js):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.fn.changeSomething = function(){
var t = $(this);
t.live("change", function(){
alert("yo");
});
};
$(document).ready(function(){
$("input[type='checkbox']").changeSomething();
$("#special").live("click", function(){
alert("ho");
});
});
</script>
</head>
<body>
<form>
<input type="checkbox" id="cbx" />
<input type="checkbox" id="special" />
</form>
</body>
</html>
Se puede publicar el código en todo el ejemplo no funciona? p.ej. ¿Está envuelto en un listo? –
Claro, mira mi edición más reciente. Un ejemplo bastante simple, pero este es básicamente el flujo. – ddango
Escucho ambos disparos aquí cada vez, el cambio se dispara y luego el clic ... ¿qué navegador estás usando que tenga problemas? –