我遇到了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时执行某些操作。我怎么能这样做?
答案 0 :(得分:3)
没有&#39;显示&#39;当元素变得可见时由元素触发的事件。您必须将处理程序绑定到事件,这会导致元素首先变为可见。在这种情况下,这似乎是第一个div上的点击事件:
$(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 () {
//...
});