我对 JS/JQuery/HTML 比较陌生,正在寻找一种方法来避免使用这么多内联/匿名函数。
这是我工作的例子:
initialize: function () {
$('section.content').each(this.initWaypoints);
}
initWaypoints: function (index, item) {
$(item).waypoint(function (direction) {
$('.navButton.' + $(item).data('label')).toggleClass('active', direction === 'down');
},{offset: '50%',vertical: true})
$(item).waypoint(function (direction) {
$('.navButton.' + $(item).data('label')).toggleClass('active', direction === 'up');
},{offset: '-50%', vertical: true});
}
我更喜欢的是这样的:
initialize: function () {
$('section.content').each(this.initWaypoints);
},
initWaypoints: function (index, item) {
$(item).waypoint(this.down, {offset: '50%', vertical: true});
$(item).waypoint(this.up, {offset: '-50%', vertical: true});
},
down: function (direction) {
$('.navButton.' + $(item).data('label')).toggleClass('active', direction === 'down');
},
up: function (direction) {
$('.navButton.' + $(item).data('label')).toggleClass('active', direction === 'up');
}
我的问题是我的 up 和 down 方法不知道 $(item) 是什么,因为它们与第一个示例的范围不同。而且我还没有找到如何将项目传递给他们。
谢谢您的帮助。