第一次发帖:-)我到处寻找答案,我似乎无法找到答案。我不是一个jQuery专家,但确实可以解决这个问题。
PopEasy:http://thomasgrauer.com/popeasy JScrollPane:http://jscrollpane.kelvinluck.com/index.html
我正在尝试让JSscrollPane在PopEasy模式窗口内工作。术语可能已关闭,但我认为我需要在模态加载后初始化它?
这是PopEasy模式的代码:基本上你单击一个链接,模态显示:
$('.modalLink').modal({
trigger: '.modalLink',
olay:'div.overlay',
modals:'div.modal',
animationEffect: 'fadeIn',
animationSpeed: 300,
moveModalSpeed: 'slow',
openOnLoad: false,
docClose: true,
closeByEscape: false,
moveOnScroll: false,
resizeWindow: true,
close:'.close-button'
});
通常,JScrollpane只是:
$('.scroll-pane').jScrollPane();
我假设(并且希望)答案很简单,我错过了一些小事,但我已经尝试了一些我还不完全理解的事情:
jQuery(document).on('click','.modalLink',function($){
$('.right-side').jScrollPane({});
});
我需要帮助: - (
谢谢你们!
答案 0 :(得分:1)
由于jScrollPane在初始化时计算容器,你想在加载模态后进行init / reinit,因为在加载模态后,PopEasy没有用于回调的API,这有点棘手。
简单但很差的方法是添加超时,如下所示:
jQuery(document).on('click','.modalLink',function($){
setTimeout(function(){
$('.right-side').jScrollPane({});
}, 500);
});
另一种方法是在动画完成后添加回调功能以便运行回调。 如果您需要重新初始化,则需要访问jScrollPane API,如下所示:
$(function() {
var pane = $('.right-side');
pane.jScrollPane({});
var api = pane.data('jsp');
jQuery(document).on('click','.modalLink',function($){
setTimeout(function(){
api.reinitialise();
}, 500);
});
});