jQuery代碼顯示兩個alert()框。爲什麼?我的問題是爲什麼jquery在resize()觸發器後調用自定義事件(即事件名稱以「resize」開頭)?jquery resize()api confusion
jQuery的版本:1.12.4
jQuery代碼顯示兩個alert()框。爲什麼?我的問題是爲什麼jquery在resize()觸發器後調用自定義事件(即事件名稱以「resize」開頭)?jquery resize()api confusion
jQuery的版本:1.12.4
你的示例代碼綁定了兩個事件聽衆resize
。第一個使用resize()
函數,第二個使用bind()
,兩者基本相同。第三種選擇是使用on()
。
唯一的區別是,你給了第二聽者namespace
稱爲test
,通過event name
和namespace
之間的點(.
)分離。但是這仍然是一個resize
事件監聽器,而不是一個自定義事件!
命名空間可以幫助您分離或分組事件偵聽器。例如,您可以刪除特定的聽衆:
$(window).on("resize", function() {
console.log("- resize");
});
$(window).on("resize.test", function() {
console.log("- resize.test");
});
// trigger resize
console.log("first trigger:");
$(window).trigger("resize");
// remove all listeners with '.test' namespace
$(window).off(".test"); // or more specific: $(window).off("resize.test");
// trigger resize again
console.log("second trigger:");
$(window).trigger("resize");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
當觸發事件resize
,它會開始處理所有已綁定到它的行動。
您可以根據需要綁定儘可能多的功能。
jQuery的事件聲明(resize.whatevername
),可以提供一個命名空間,以便稍後解除綁定:
$(window).unbind('resize.test')
但它仍然是綁定到resize
事件
這是** **不是一個自定義事件! – eisbehr