繁体   English   中英

与动态div绑定jQuery

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM