简化函数 jquery
simplify functions jquery
我有这些 "functions" 在块中针对各种元素重复。
如何简化使用 "var"?
谢谢你:)
例如:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
$(this).addClass("here");
$(this).prevAll().removeClass("here");
$(this).prev().prev().addClass("here_pre");
$(this).next().next().addClass("here_pre");
},
});
我想得出这样的解决方案:
var active_here = $(this).addClass("here"),
$(this).prevAll().removeClass("here"),
$(this).prev().prev().addClass("here_pre"),
$(this).next().next().addClass("here_pre");
最后回忆起来是这样的:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
active_here;
},
});
$('#test2').waypoint(function (direction) {
if (direction === 'up') {
active_here;
},
});
etc... etc... etc...
为什么不直接创建一个函数,然后在函数内部调用该函数?
function active_here(this) {
//code here..
}
Javascript可变函数(也可以声明为普通函数):
var active_here = function($elem){
$elem.addClass("here");
$elem.prevAll().removeClass("here");
$elem.prev().prev().addClass("here_pre");
$elem.next().next().addClass("here_pre");
}
通话中:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
active_here($(this));
},
});
$('#test2').waypoint(function (direction) {
if (direction === 'up') {
active_here($(this));
},
});
我有这些 "functions" 在块中针对各种元素重复。 如何简化使用 "var"?
谢谢你:)
例如:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
$(this).addClass("here");
$(this).prevAll().removeClass("here");
$(this).prev().prev().addClass("here_pre");
$(this).next().next().addClass("here_pre");
},
});
我想得出这样的解决方案:
var active_here = $(this).addClass("here"),
$(this).prevAll().removeClass("here"),
$(this).prev().prev().addClass("here_pre"),
$(this).next().next().addClass("here_pre");
最后回忆起来是这样的:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
active_here;
},
});
$('#test2').waypoint(function (direction) {
if (direction === 'up') {
active_here;
},
});
etc... etc... etc...
为什么不直接创建一个函数,然后在函数内部调用该函数?
function active_here(this) {
//code here..
}
Javascript可变函数(也可以声明为普通函数):
var active_here = function($elem){
$elem.addClass("here");
$elem.prevAll().removeClass("here");
$elem.prev().prev().addClass("here_pre");
$elem.next().next().addClass("here_pre");
}
通话中:
$('#test1').waypoint(function (direction) {
if (direction === 'down') {
active_here($(this));
},
});
$('#test2').waypoint(function (direction) {
if (direction === 'up') {
active_here($(this));
},
});