javascript: function call to itself
I suppose the following code:
jQuery("#mybutton").click(function(){
//do something
});
How could I recall to this function "anonymous"?, I can not put a name to this function:
var xfun = function(){
//do something
}
jQuery("#mybutton").click(xfun);
I can do something like this:
var working = fals开发者_如何转开发e;
jQuery("#mybutton").click(function(){
if (working){
var _this = this;
_this._eventType = e.type;
setTimeout(function() { jQuery(_this).trigger(_this._eventType); }, 200);
return false;
}
//do something
});
what I need is something like this:
var working = false;
jQuery("#mybutton").click(function(){
if (working){
setTimeout( this_function, 200);
return false;
}
//do something
});
thanks.
EDIT:
Solution:
jQuery("#mybutton").click(function(){
if (working){
var fn = arguments.callee;
var _this = this;
setTimeout(function(){fn.call(_this);}, 200);
return false;
}
//do something
});
You can indeed name your anonymous function:
jQuery("#mybutton").click(function doWork(){
if (working){
setTimeout(doWork, 200);
return false;
}
//do something
});
You can also use arguments.callee
:
jQuery("#mybutton").click(function(){
if (working){
setTimeout(arguments.callee, 200);
return false;
}
//do something
});
I'd go with the former.
Can you explain why you can't name the function? You can use arguments.callee
to get a reference to the current function, but that is deprecated and I'm not sure how much support it has among current browsers.
精彩评论