我犯了一个错误,将类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>
当代码执行时,所有元素都被加载,这段代码就可以工作了。