你可以在()事件处理程序上附加的最早点是什么(对于live()行为)

时间:2012-09-10 07:29:50

标签: jquery event-handling

所以这几乎都在问题标题中,你可以在()事件处理程序(对于live()行为)附加的最早点是什么?

进一步详细说明..

我知道ready()事件jquery模式但是根据一些(reference),如果你使用像{一样的东西,你真的不必等待所有东西准备好附加事件{1}}。

live()现已弃用,而live()有点类似的行为。

on()用于将事件附加到live(),这听起来像在文档解析的早期可用。

另一方面,

$(document)通常建议通过将事件附加到与DOM中的目标更接近的位置来使用。

因此,如果我的大部分内容都在on()部分中,那么#main将成为附加$('#main')处理程序的良好候选者。

考虑到这一点,何时可以安全地附加我的on()处理程序?

是否在容器标签打开后很快?或者一旦关闭?

这是否可靠并且通常在浏览器中表现正常?

on()

1 个答案:

答案 0 :(得分:0)

您可以在元素附加到dom后立即附加事件。由于.on()现在负责所有类型的事件附件(直接附件以及委托),因此您不应在声明子元素之前附加事件,而应在#main结尾处附加事件保持一致。因为一般情况下建议尽可能晚地放置脚本,我会使用以下内容:

<section id='main'>
    ...
    <button class="donkey">Donkey That!</button>
</section>
<script>
    $('#main').on('click','button.donkey', function() { alert ('you click the donkey');})
</script>