var myfunction = function(){
$('.menu').delay(3000).slideDown("fast").attr('style', 'color:#fff')
return false;
});
我可以重复我的函数排除delay(3000)
吗?
意思类似于$('#submit').click(myfunction);
,但myfunction应排除.delay(3000)
使用时间变量设置函数:
var myfunction = function(delayTime) {
$('.menu').delay(delayTime).slideDown("fast").attr('style', 'color:#fff')
return false;
});
然后用时间值作为参数调用它:
myfunction(3000);
或
myfunction(0);
在这种情况下,我喜欢创建一个curried函数(即一个返回函数的函数(。
function myFunction(doDelay){
return function(){
$('.menu').delay(doDelay ? 3000 : 0).slideDown('fast') //...
return false
}
}
然后你可以像一样设置你的点击监听器
$('#submit').click(myFunction(false))
并使用类似myFunction(true)()
的延迟来调用它,或者创建不同的延迟实例,如var myFunctionDelayed = myFunction(true)
或var myFunctionNoDelay = myFunction(false)