是否可以在没有括号的情况下调用jQuery函数,但此时将参数传递给函数?
我有这样的情况:
已声明jQuery函数,我希望通过调用手动运行,而不是在DOM准备好之后
$(function() {
function doosomething()
{
//Doo something
}
$("div").click(doosomething); //function is calling without "()"
});
如果我在调用时将括号用于函数,它将在DOM上运行,而不是单击。 那么如果我想将一些参数推送到我的doosimething函数怎么办?像这样:
doosomething(foo, bar)
答案 0 :(得分:1)
而不是
$("div").click(doosomething); //function is calling without "()"
DO
$("div").click(function() { doosomething(foo, bar); });
您希望在调用时传递调用函数的函数。
答案 1 :(得分:0)
要将变量传递给jQuery事件处理程序,请执行以下操作:
function doSomething(event) {
var x = event.data.your_param_1;
// do something
}
$('div').on('click', doSomething);
$('div').trigger('click', {your_param_1:some_variable});
有关详细信息,请参阅trigger()函数上的jQuery API:http://api.jquery.com/trigger/#trigger-event-extraParameters
如果您没有手动触发点击事件:
$('div').on('click', {your_param_1:some_variable}, doSomething);
在用户触发click事件时,仍会评估some_variable
var。