jquery - fullpage.js 在 reBuild() 之后删除事件侦听器
问题描述
我尝试在此站点https://frontendsite.bitbucket.io/#twoPage上使用 fullpage.js 。#twoPage 部分中有可折叠的内容。
我正在初始化整页插件
var myFullpage;
function initFullPage() {
myFullpage = new fullpage('#fullpage',{
navigation: true,
navigationPosition: 'right',
scrollOverflow: true,
scrollOverflowOptions: {click: false},
scrollOverflowReset: true,
afterLoad: function(anchorLink, index){
var loadedSection = $(this);
var nextSection = loadedSection.next();
var prevSection = loadedSection.prev();
if(nextSection.hasClass('fp-auto-height') ) {
var IScroll = nextSection.find('.fp-scrollable').data('iscrollInstance');
IScroll.scrollTo(0, 0, 0)
}
if(prevSection.hasClass('fp-auto-height') ) {
var IScroll = prevSection.find('.fp-scrollable').data('iscrollInstance');
IScroll.scrollTo(0, IScroll.maxScrollY, 0)
}
},
anchors: ['firstPage', 'twoPage', '3rdPage', 'foursPage'],
});
}
我添加了单击侦听器,目的是通过 jQuery 显示/隐藏可折叠内容
$('.plus_icon.question').click(function( ){
var a = $(this).siblings('.answer');
a.toggleClass('open');
$(this).toggleClass('rotate');
myFullpage.reBuild();
});
但是在使用“.answer”单击回调显示/隐藏可折叠内容一次后不起作用,但如果我使用 myFullPage.reBuild() 注释行,它会起作用。是 fullpage.js 的错误还是我错误地使用了插件?
解决方案
首先,请记住,您需要获得 fullPage.js 许可证才能合法使用它。
第二。您可以使用afterRebuild
回调:
new fullpage('#fullpage',{
afterRender: function(){
bindMyEvents();
},
afterReBuild: function(){
bindMyEvents();
}
});
function bindMyEvents(){
$('.plus_icon.question').click(function( ){
var a = $(this).siblings('.answer');
a.toggleClass('open');
$(this).toggleClass('rotate');
myFullpage.reBuild();
});
}
或者,更容易使用 jquery 事件委托:
new fullpage('#fullpage',{OPTIONS HERE});
$(document).on('click, '.plus_icon.question', function( ){
var a = $(this).siblings('.answer');
a.toggleClass('open');
$(this).toggleClass('rotate');
myFullpage.reBuild();
});
推荐阅读
- server - Windows 管理中心和无进度上传文件
- java - 在访问两个不同的 servlet 时,一个可用,另一个抛出 servlet not found 错误
- html - 移动响应式 CSS 无法正常工作的问题
- php - 使用关系查询模型
- java - 使用自定义类型创建 REST API
- vsto - VSTO 自定义 XML 功能区选项卡包含 XML 中未指定的组
- c++ - 可以将两个连续的相同类型的数组视为一个吗?
- python - Python,Heroku,将文件保存到本地 PC
- bash - 一种用于提取存档文件然后删除它们的衬垫
- flutter - 有没有办法从 FutureBuilder 中提取数据?