我一直在尝试用 .on 事件处理程序替换 .live 和 .bind 处理程序,尽管在某些情况下我有效地使用了 .on ,但它似乎无法按预期工作,尤其是当它必须“加载”时" 来自动态源意味着如果我尝试从本身通过 AJAX 动态加载的 html 文件运行以下代码片段,它会静默失败。
例如,我通过 ajax 将 test.html 加载到 div 中,而 test.html 具有:
<script>
$(window).on('load', 'body', function(){
alert('test');
});
</script>
理论上,当页面上的所有元素都已加载时,这应该会提供一个警告框,对吗?在实践中它什么也不做。警报永远不会触发。同样的:
<script>
$(document).on('load', 'body', function(){
alert('test');
});
</script>
理论上应该在 dom 满载时触发,实际上它根本不会触发。
这只发生在这些事件本身从动态位置调用时,但我想这种情况经常发生,所以是否有一种解决方法可以使这些事件在动态加载时仍然触发,或者我做错了什么。我遇到了很多这个问题,这显然是加载事件的一个问题,就好像我要将两个事件中的任何一个更改为“单击”而不是加载,然后单击主体上的任何位置,警报会按预期触发。所以我的主要问题是加载事件发生了什么。