0

我一直在尝试用 .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 满载时触发,实际上它根本不会触发。

这只发生在这些事件本身从动态位置调用时,但我想这种情况经常发生,所以是否有一种解决方法可以使这些事件在动态加载时仍然触发,或者我做错了什么。我遇到了很多这个问题,这显然是加载事件的一个问题,就好像我要将两个事件中的任何一个更改为“单击”而不是加载,然后单击主体上的任何位置,警报会按预期触发。所以我的主要问题是加载事件发生了什么。

4

1 回答 1

0

你忘记了 .ready(),它非常有用(不会撒谎,我脑子里放了个屁,也忘记了)

<script>
  $(document).ready(function() {
    alert('test');
  });
</script>

希望有帮助:)

于 2013-07-03T22:56:40.760 回答