我似乎遇到了jScrollPane在第一次尝试时似乎没有加载的问题,可能因为我的表有图像,我不知道。
我尝试了各种各样的事情:
$(window).bind('load', function () {
$('.scroll-pane').jScrollPane();
$('.scroll-pane').jScrollPane({
reinitialiseOnImageLoad: true
});
});
无济于事:(!如果有人知道发生什么事,请告诉我,谢谢你!
答案 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
代替..