我有一個輸入文本與兩個事件和dinamically克隆它幾次。要正確地綁定這些元素,我使用:如何在jQuery中用.live綁定多個事件?
注意:此輸入文本具有focusin和focusout事件。
$('[selector_input]').die().live('focusin', function() {
alert('You focused me');
});
$('[selector_input]').die().live('focusout', function() {
alert('Bye!');
});
最終的結果是所有輸入只執行:focusout事件。如果我不使用.die(),我會重複調用相同的事件。
現在的解決辦法是:
$('[selector_input]').die().live('focusout focusin', function(event) {
if (event.type == "focusin")
alert('You focused me');
else
alert('Bye!');
});
但我喜歡和喜歡的第一個代碼獨立。
你知道'.die()'的意思是刪除之前爲該選擇器設置的事件處理程序,對吧? – cHao
是的,我現在,但我不明白爲什麼當我退出.die(),我附加了多個事件,例如:沒有.die(),我得到5警報('你集中我'米做錯了嗎? –
爲什麼你必須重新綁定事件? Live(與bind相對)意味着將事件綁定到選擇器,即事件綁定到與選擇器匹配的元素,即使它們是在綁定之後添加的。 –