与动态div绑定的jquery

时间:2013-03-25 18:55:43

标签: javascript jquery

我遇到了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时执行某些操作。我怎么能这样做?

1 个答案:

答案 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 () {
    //...
});