Javascript 从ajax加载时始终获取mCS\u no\u滚动条类

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 } } ); }

我正在使用jquery自定义滚动条插件。 链接

我正在通过ajax加载数据。 代码如下

  $(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
            }
        }
       );
     }
    });
这很好用