Javascript 从ajax加载时始终获取mCS\u no\u滚动条类
我正在使用jquery自定义滚动条插件。 链接 我正在通过ajax加载数据。 代码如下Javascript 从ajax加载时始终获取mCS\u no\u滚动条类,javascript,jquery,ajax,mcustomscrollbar,Javascript,Jquery,Ajax,Mcustomscrollbar,我正在使用jquery自定义滚动条插件。 链接 我正在通过ajax加载数据。 代码如下 $(window).load(function(){ $(".top-heading-section3").mCustomScrollbar({ advanced:{ updateOnContentResize: true } } ); }
$(window).load(function(){
$(".top-heading-section3").mCustomScrollbar({
advanced:{
updateOnContentResize: true
}
}
);
});
ajax完成后,我会:
$(".top-heading-section3").mCustomScrollbar('update')
但我仍然在所有div上都有mCS_no_滚动条类,滚动条不会出现
哪里出了问题?我认为问题在于,在将滚动条样式附加到元素之前,您可能正在插入Ajax请求中的数据,然后插件错误地假设div的当前大小是设置的大小,并且在增加之前不需要滚动条。我有同样的问题,我用setTimeout函数解决了它。设置要将McCustomsCrollBar连接到的div的高度也很重要。否则,当添加内容时,它将调整div的大小
setTimeout(function(){
$('.top-heading-section3').mCustomScrollbar();
}, 600);
我将它设置为600ms只是为了确保它被渲染,但是您可以在测试它时修改它,以便它在尽可能短的时间内渲染
也可以看到这个帮助我解决问题的链接
在使用ajax函数将html附加到dom之后,应该应用customscrollbar。这种方法更有效、更可靠
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$(".container").append(html);
$(".top-heading-section3").mCustomScrollbar({
advanced:{
updateOnContentResize: true
}
}
);
}
});
这很好用