文档准备好后附加元素的Javascript事件处理程序

时间:2014-01-23 18:15:47

标签: javascript html dom delegates scroll

我有一个javasript函数,它应该在文档准备好后更改附加元素的值。 我的意思是:如果javascript附加了一个div:<div class="new-div"></div>,我无法拦截该DIV上的操作。

此代码不起作用:

$(document).ready(function() {
    $('.new-div').on('click', function(){
        alert('clicked');
    });
});

但是这段代码,使用委托,工作正常:

$(document).ready(function() {
    $(document).on('click', '.author-profile-articles-table', function(){
                alert('clicked');
            });
});

但是,当需要滚动事件时,以下代码不起作用:

$(document).ready(function() {
    $(document).on('scroll', '.author-profile-articles-table', function(){
        alert('scrolled');
    });
});

根据t.niese,滚动事件不会通过DOM传播,因此无法将其与委托一起使用以使其工作。

脚本标签和html一起工作,但我觉得它不是一种优雅/聪明的方式。

问题是,如果滚动截取器不能与DOM一起使用,那么从单独的javascript文件或html脚本标记中放置事件拦截器的方法是唯一的选择吗?

干杯,

1 个答案:

答案 0 :(得分:0)

我使用bind标签使其工作:

当我完成执行给定的操作时,使用以下命令触发事件:

$.trigger('eventName');

我使用bind构建事件监听器:

$(document).bind('eventName', function(){
    // Do your stuff here.
}

顺利工作=)