0
有一個奇怪的行爲,當我使用命名空間事件,處理程序將始終被解僱。JavaScript與命名空間事件
<div id="div1"></div>
<span id="span1">click</span>
<span id="span2">click</span>
$("#div1").on("click.me", function(event, data){
$(this).append(data.from);
});
$("#span1").on("click", function(event){
$("div").trigger("click.me", [{from:"span1"}]);
});
$("#span2").on("click", function(event){
$("div").trigger("click", [{from:"span2"}]);
});
因此,當我單擊span1和span2時,div將追加數據。這是爲什麼 ?我不是隻添加了特定於「click.me」的處理程序嗎?
我有它的jsfiddle http://jsfiddle.net/cY5sk/1/
你是什麼意思所有處理程序?是不是「click.me」只是一個整體事件? – peter
我的意思是,如果發生'click'事件,那麼綁定到該事件的所有事件處理程序都會被調用,而不管它們屬於哪個名稱空間。當然,你的例子中只有一個處理程序,但我正在推廣。例如。如果你有'$ e1.on'('click',...)'和'e1.on('click.foo',...)',那麼觸發點擊事件時觸發這兩個處理程序。 –
什麼是downvotes?如果有人認爲我的回答有問題,請告訴我。 –