Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击仅触发一次的处理程序_Javascript_Jquery - Fatal编程技术网

Javascript 单击仅触发一次的处理程序

Javascript 单击仅触发一次的处理程序,javascript,jquery,Javascript,Jquery,我有一组我迭代并添加单击处理程序的链接。单击每个链接时,都会触发一个ajax请求,该请求成功后会创建一个包含响应数据的div,并将其附加到DOM中。但是,当用户单击关闭(在div上)或单击屏幕上的任何其他位置时,新添加的div(类似于小灯箱的浮动div)将被删除。我在下面有一个简单的脚本来监视这个更改,但是单击处理程序只触发一次,直到页面刷新后才工作。我做错了什么 var monitorChange = function () { //Check if div has been appe

我有一组我迭代并添加单击处理程序的链接。单击每个链接时,都会触发一个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 );
});

据我所知,您希望您的点击事件仍能使用ajax生成的代码。在这种情况下,您需要使用live命令


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

正如您所知,在最后一个循环中,
已经是一个jQuery对象,所以您不需要
$(that)