我有一个简单的函数遍历页面,并使用.each()为每个匹配的元素添加一个CSS类.我也经常使用
AJAX更新页面,并且在第一次改变事物的AJAX更新后,该功能不再适用.
码:
$("div.col-conversation span.label-sticky").each(function () {
$(this).closest('li').addClass('stickyhighlight');
});
我理解为什么它在第一个AJAX事件之后不起作用并且尝试使用.live()或.delegate()但是它似乎不能绑定非事件的东西(即你只能绑定点击,悬停等)使用这种方法,所以.each()不起作用.
是否有一种简单的方法来执行此功能,而不将其包含在AJAX成功回调中,并且不使用像livequery这样的插件,这可能有点过分了?
最佳答案 我认为这对你有用:
$('body').on('mychange','div.col-conversation span.label-sticky',function () {
$(this).closest('li').addClass('stickyhighlight');
});
将此添加到您的ajax成功函数:
$('body').trigger('mychange');
或者如果你真的不想(或不能)修改ajax成功函数:
setInterval(function() {
$('div.col-conversation span.label-sticky').each(function () {
$(this).closest('li').addClass('stickyhighlight');
});
},100);