[英]jquery on binding with dynamic div
我對jquery有問題。 假設我在jquery中有2個div,
<div id='1'> //static div
</div>
<div id='2'> //dynamic div
</div>
靜態div始終存在於文檔中,但是當我們單擊靜態div時,動態div會切換。 現在我想要在動態div上放置一個事件,例如:
$(document).on("show", "#2", {}, function() {
alert("div 2 present");
});
這樣,當文檔中存在動態div時,我就可以執行某些操作。 我怎樣才能做到這一點 ?
當元素變為可見時,沒有由元素觸發的“顯示”事件。 您將不得不將處理程序與事件相關聯,從而使該元素首先變得可見。 在這種情況下,這似乎是第一個div上的click事件:
$(document).on("click", "#1", function() {
$("#2").toggle();
if ( $("#2").is(":visible") ) {
alert("div 2 present");
}
});
請注意,根據HTML 4規范,元素ID不應以數字開頭。 但是,在HTML 5中沒關系。
需要注意的進一步改進是,在將處理程序綁定到動態生成的元素時,最好將最近的靜態父元素作為目標,而不是允許在document
級別處理委托。 即做$("#parent").on("click", element, function() {})
。
最后,由於<div id="1">
是靜態的,因此不需要委托的事件處理程序,可以直接綁定處理程序:
$("#1").click(function () {
//...
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.