从鼠标滚轮和滚轮中删除事件侦听器时遇到问题。我正在使用fullpage.js插件。
问题是,当我通过点击链接(我使用ui路由器为angular.js)从我的“关于页面”到另一个,然后点击后退按钮重新开始关于页面,事件监听器开启鼠标滚轮和滚轮未被移除并附加了额外的侦听器。重复这些步骤可以添加更多的侦听器。
.directive('dfAboutPagesView', function( ) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.checkPackages = {
all: false
};
scope.$on("$destroy", function() {
$(document).off();
});
var fullpage_in = function () {
element.fullpage({
scrollingSpeed: 500,
autoScrolling: false
});
element.fullpage({
onLeave: function (index, nextIndex, direction) {
if (index == 1 && direction == 'down') {
$('#header').slideUp(500, 'easeInQuad');
}
else if (index == 2 && direction == 'up') {
$('#header').slideDown(500, 'easeInQuad');
}
else if (index == 3 && direction == 'down') {
$('#footer').slideDown(500, 'easeInQuad');
}
else if (index == 4 && direction == 'up') {
$('#footer').slideUp(500, 'easeInQuad');
}
}
});
};
fullpage_in();
}
}
})
答案 0 :(得分:3)
查看fullPage.js的文档,我想你想在$destroy
处理程序中调用插件的destroy
方法:
scope.$on("$destroy", function() {
$.fn.fullpage.destroy('all');
});