所以这几乎都在问题标题中,你可以在()事件处理程序(对于live()行为)附加的最早点是什么?
进一步详细说明..
我知道ready()
事件jquery模式但是根据一些(reference),如果你使用像{一样的东西,你真的不必等待所有东西准备好附加事件{1}}。
live()
现已弃用,而live()
有点类似的行为。
但on()
用于将事件附加到live()
,这听起来像在文档解析的早期可用。
$(document)
通常建议通过将事件附加到与DOM中的目标更接近的位置来使用。
因此,如果我的大部分内容都在on()
部分中,那么#main
将成为附加$('#main')
处理程序的良好候选者。
考虑到这一点,何时可以安全地附加我的on()
处理程序?
是否在容器标签打开后很快?或者一旦关闭?
这是否可靠并且通常在浏览器中表现正常?
on()
答案 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>