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