根据 SO 和 this groovy example 上的各种帖子您可以将参数传递给 JSON 对象内的 jQuery 回调函数,如下所示:
$("myButton").on("click",{foo:"bar"},runStuff);
这很酷,但是如果我还需要 runStuff
来处理正常的上下文怎么办?我正在为此苦苦挣扎:
假设我的回调是一个仅打印其参数的函数:
function printParam(param)
{
console.log(param);
}
这个函数应该像这样正常调用:printParam("Hey!");
,但也可以通过事件调用:
$("body").on("DOMNodeInserted",{foo: "Hey!"},printParam);
我尝试像这样实现printParam
:
function printParam(param)
{
param = (event.data.foo) ? event.data.foo : param;
console.log(param);
}
但是这当然不起作用,因为 event
未定义。我在这里有什么选择?
最佳答案
使用 .on()
的 data
参数时,数据不会直接传递给回调,而是在 data
中传递给函数的 Event 对象的属性。
示例:
$("myButton").on("click",{foo:"bar"},runStuff);
function runStuff(event) {
console.log(event.data.foo);
}
所以你可以调用runStuff
:
runStuff({data: {foo:"bar"}});
关于javascript - 将参数传递给 jquery 回调,但也可以在外部使用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22764190/