我想做的是将函数(X)的名称作为参数传递到函数Y中,然后让函数Y创建一个触发函数X的事件处理程序。
我希望函数 Y 创建以下内容:
$('#form').submit(function(e){e.preventDefault();X();});
我试过:
var name="X()";
X(name);
function Y(id){
$('#element').submit(function(e){e.preventDefault();id;});
}
可以预见的是,这是行不通的。(我真的不相信它会!但是,如何做到这一点,要么(1)按照我的方式做,要么(2)将整个X函数wholus-bolus传递给Y?
谢谢。
这里有一个演示,如果你觉得怀疑(
听起来更好):D
//create x
function x(){
alert('im from x');
}
//create y that receives the function
function y(callback){
//bind your handler which calls callback (which was x)
$('element').submit(function(){
callback();
});
}
//call y that sends over a reference of x
y(x);
你的 X 对象必须是函数,而不是字符串。
function X() { /*code*/ }
您可以通过在 X 末尾返回 false 来阻止默认操作;
function X() {
/*code*/
return false;
}
你可以在另一个函数中使用它,如下所示:
function Y(callback){
$('#element').submit(callback);
}
Y(X);