var myfunction = function(){
$('.menu').delay(3000).slideDown("fast").attr('style', 'color:#fff')
return false;
});
我可以重复myfunction排除delay(3000)
吗?
表示$('#submit').click(myfunction);
之类的内容,但myfunction应排除.delay(3000)
答案 0 :(得分:1)
使用时间变量设置您的功能:
var myfunction = function(delayTime) {
$('.menu').delay(delayTime).slideDown("fast").attr('style', 'color:#fff')
return false;
});
然后用时间值作为参数调用它:
myfunction(3000);
或
myfunction(0);
答案 1 :(得分:1)
在这种情况下,我喜欢创建一个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)