jQuery的事件处理程序运行良好,但应该't,因为它's不在ready()函数中

Event handler for jQuery works great but shouldn't because it's not in ready() function

本文关键字:不在 因为 ready 函数 程序 事件处理 jQuery 运行      更新时间:2024-06-07

我犯了一个错误,将类cancelAction的所有链接的事件处理程序放置在文档加载时执行的函数之外,如下所示:

$(document).ready(function () { ... });
$(".cancelAction").on("click", function () { ... });

令我惊讶的是,它仍然有效!我很确定这不是应该的。我错了吗?

我已经三次检查了注释掉处理程序是否会使功能失效。我一辈子都不明白,如果浏览器不附加到任何作用域(因为它不是在ready(...)函数中执行的),它是如何知道这个特定的处理程序的。

如果您在加载文档元素后有这个代码,那么它应该是在加载dom元素后代码执行的。类似:

....
</body>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(".cancelAction").on("click", function () { ... });
</script>

当代码执行时,所有元素都被加载,这段代码就可以工作了。