jQuery的事件处理程序工作得很好,但不应该,因为它不在ready()函数中



我犯了一个错误,将类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>

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

相关内容

  • 没有找到相关文章

最新更新