我一直无法将此插件正确地附加到ajax加载的元素上,但我无法弄清楚它们有时会被附加的原因,有时却没有。但仅适用于此特定插件。所以我的问题是,如果setInterval运行的时间大约是每300毫秒,那么如果它只是将jquery插件附加到页面上可能存在或不存在的某些元素上,会导致浏览器变得迟缓。
像:
setInterval(function(){
$(".nano").nanoScroller();
}, 300);
我最初尝试做的是:
$.ajax({
type: "POST",
url: "ajax/load/notifications/notifications.php",
cache: false,
success: function(html){
$(".notification-container").html(html);
$(".nano").nanoScroller();
}
});
然而它没有附加它(无论如何,一些部分正在改变,但不是主插件)
但是,当我调用另一个ajax事件,并在该callout中触发相同的事情时,它会将它附加到此元素和另一个元素。
setInterval函数也将它们全部添加到它们中。
答案 0 :(得分:1)
不缓存jQuery对象并导致每隔300ms对其进行一次DOM搜索是没有效率的。
function nanoTimer() {
if (timer) {
clearInterval(timer);
}
var $nano = $('.nano');
timer = setInterval(function() {
$nano.nanoScroller();
}, 300);
}
nanoTimer();
ajax之后的调用函数