单击处理程序仅触发一次

时间:2011-07-21 16:51:06

标签: javascript jquery

我有一组链接,我迭代并添加点击处理程序。单击时,每个链接都会触发一个ajax请求,该请求在成功创建包含响应数据的div后,并将其附加到DOM。然而,当用户单击关闭(在div上)或单击屏幕上的任何其他位置时,将删除新添加的div(类似于小灯箱的浮动div)。我在下面有一个简单的脚本来监控这个更改,但点击处理程序只触发一次,直到页面刷新后才能工作。我做错了什么?

var monitorChange = function () {
    //Check if div has been appended to the dom and if so continue to monitor it
    if ( $('div.justappended').length > 0 ) 
    {
        setTimeout(monitorChange,100);
    } 
    else 
    {
        //div has been removed from the dom
        alert('div removed');
        //...do additional stuff here
    }
};

$( 'span.someElements' ).each( function () {
    var that = $(this);
    $(that).click( monitorChange );
});

1 个答案:

答案 0 :(得分:2)

据我所知,您希望点击事件仍然可以使用ajax生成的代码。在这种情况下,您需要使用live命令。 http://api.jquery.com/live/

$('span.someElements')。live('click',monitorChange);