如何在不丢失第一次初始化中添加的功能的情况下重新初始化jScrollPane
How to reinitialise jScrollPane without losing features added in the first initialisation?
我在使用jScrollPane的reinitialise()
方法时遇到问题。每当我调用它时,我在第一次初始化中实现的东西就会停止工作。。。
在我当前的代码中,我正在做这样的事情:
$('.scrollable').each(function(){
var e = $(this),
parent = e.parent();
e.jScrollPane({
// parameters
});
var api = e.data('jsp'),
arrowup = e.find('.jspArrowUp'),
arrowdw = e.find('.jspArrowDown');
if ( api.getIsScrollableV() ) {
e.addClass('scrolled-top');
parent.addClass('scroll-parent');
}
e.scroll(function(){
var scrbef = api.getContentPositionY(),
scrmax = api.getContentHeight() - this.clientHeight,
scraft = scrmax - scrbef,
dlayup = (scrbef - 220)/100,
dlaydw = (scraft - 220)/100,
opacup = dlayup > 1 ? 1 : dlayup < 0 ? 0 : dlayup,
opacdw = dlaydw > 1 ? 1 : dlaydw < 0 ? 0 : dlaydw;
if ( scrbef === 0 ) {
e.addClass('scrolled-top').removeClass('scrolled-bot');
} else if ( scraft === 0 ) {
e.addClass('scrolled-bot').removeClass('scrolled-top');
} else {
e.removeClass('scrolled-top scrolled-bot');
}
arrowup.css('opacity', opacup);
arrowdw.css('opacity', opacdw);
});
到目前为止,一切都很好。它的作用是:
- 初始化
.scrollable
元素上的jScrollPane - 根据内容位置添加或删除
scrolled-top
或scrolled-bot
类 - 根据内容的位置控制箭头的不透明度(顶部和底部有很多填充,所以我只希望箭头在实际内容到达屏幕边界时出现(
紧接着,我有了这个:
var throttleTimeout;
$(window).resize(function(){
if ( !throttleTimeout ) {
throttleTimeout = setTimeout( function(){
api.reinitialise();
throttleTimeout = null;
}, 500
);
}
});
$('.deployer').click(function(e){
api.reinitialise();
});
});
现在,这很简单;调整窗口大小时重新初始化的代码直接来自文档。
然而,一旦调用了reinitialise()
,那么在调整窗口大小或单击.deployer
元素后,控制箭头不透明度的前一个代码就会停止工作——尽管奇怪的是,scrolled-top
和scrolled-bot
类仍然可以正确添加或删除。
有人知道是什么导致了这种行为,以及如何解决吗?
干杯。
发现发生了什么。
每当重新初始化时,基本上所有内容都会被重新设置,因此以前存储在arrowup
和arrowdw
中的元素不再存在。添加
var arrowup = e.find('.jspArrowUp'),
arrowdw = e.find('.jspArrowDown');
再次在每个CCD_ 11完成特技之后。
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 如何使用onDeviceReady设置AngularJS应用程序并初始化Cordova的功能
- 如何在脚本标记的功能中初始化会话
- 按钮点击功能,易于初始化
- 在选项卡的点击功能上初始化猫头鹰轮播
- 何时组合通用功能?-带有初始化的公共静态对象
- 传单js地图初始化和回调功能
- 我如何附加功能到剑道网格后,它初始化
- 如何在不丢失第一次初始化中添加的功能的情况下重新初始化jScrollPane