Diciamo che ho uno scenario in cui ho un plug-in globale (o almeno un plug-in che si collega a una gamma più ampia di eventi).jquery .live() interazioni evento
Questo plugin accetta un selettore e associa un clic in tempo reale ad esso. Qualcosa nella pseudo-jquery che potrebbe essere simile a questo:
$.fn.changeSomething = function(){
$(this).live("change", function(){ alert("yo");});
}
In un'altra pagina, ho un vivo ulteriore qualcosa di vincolante come questo:
$("input[type='checkbox']").live("click", function(){alert("ho");});
In questo scenario, la casella di controllo sarebbe idealmente finiscono per essere associato ad entrambi gli eventi dal vivo.
Quello che vedo è che l'evento di modifica si attiva come dovrebbe e sono avvisato "yo". Tuttavia, utilizzando questo evento di clic live, non lo faccio mai scattare. Tuttavia, usando un esplicito click binding, lo colpisco.
La soluzione facile è attivare un evento click alla fine del gestore di modifiche in tempo reale, ma questo mi sembra janky. Qualche idea?
Si noti che questo utilizza jquery 1.4.2 e si verifica solo in IE8 (suppongo che sia necessario anche il 6/7, ma non li ho testati).
un esempio (avrete bisogno di 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>
Puoi pubblicare il codice intorno l'esempio non funziona? per esempio. è avvolto in un pronto? –
Certo, guarda la mia modifica più recente. Esempio piuttosto semplice, ma questo è fondamentalmente il flusso. – ddango
Ogni volta sparo entrambi, il cambiamento spara e poi il clic ... quale browser stai usando che sta avendo problemi? –