jScrollPane首次尝试时无法加载

时间:2011-12-20 10:58:25

标签: jquery jscrollpane

我似乎遇到了jScrollPane在第一次尝试时似乎没有加载的问题,可能因为我的表有图像,我不知道。

This is the demo

我尝试了各种各样的事情:

$(window).bind('load', function () {
    $('.scroll-pane').jScrollPane();
    $('.scroll-pane').jScrollPane({
        reinitialiseOnImageLoad: true
    });
});

无济于事:(!如果有人知道发生什么事,请告诉我,谢谢你!

2 个答案:

答案 0 :(得分:1)

它实际上适合我。但是jScrollPane出现了一些延迟。我认为这是因为你已经将初始化编码为:

$(function() {
   $(window).bind('load', function()
   {
      $('.scroll-pane').jScrollPane();
   });
});

绑定到事件load将等待在执行之前加载所有页面资源(html,脚本,图像,样式表......)。

您是否有特殊原因绑定了加载事件?

您实际上想要在.scroll-pane元素准备就绪时应用jScrollPane进行初始化,所以只需执行此操作:

$(function() {
      $('.scroll-pane').jScrollPane();
});

修改

我调试了页面以检查何时被称为jScrollPane() 我不知道该表实际上是用ajax加载的。

问题很简单:调用jScrollPane()时,.scroll-pane不存在!

当页面“准备就绪”时,执行的内容如下:

  • 开始使用以下内容加载表格:

    $('#whole-ajax-content-one').load('events.html', function() { ... });

  • 执行绑定的加载事件(因为页面实际已加载,window.load上的绑定与您对“event.html”的ajax加载无关:

    $('.scroll-pane').jScrollPane();

    由于您的表尚未加载/创建,$('.scroll-pane')为空!

  • 执行.load()的回调(带.tablesorter(),delegate()等)


解决方案是将您的jScrollPane初始化代码放入.load()的回调中。这将确保您的.scroll-pane元素确实存在。

注意:我不是百分百肯定,但它可能会在连续重新加载时起作用,因为涉及浏览器缓存,并且在执行jScrollPanel()时,您的表已经存在。

答案 1 :(得分:1)

如果您使用的是最新版本,则reinitialiseOnImageLoad选项不再存在..

使用autoReinitialise代替..

支持的选项可在http://jscrollpane.kelvinluck.com/settings.html

找到