0

是否可以不带括号调用jQuery函数,但此时传递参数给函数?

我有这样的情况:

已经声明了 jQuery 函数,我想通过调用手动运行,而不是在 DOM 准备好之后

$(function() {

  function doosomething()
  {
    //Doo something
  }

  $("div").click(doosomething); //function is calling without "()"

});

如果我在调用时加上括号,它会在 DOM 就绪时运行,而不是在点击时运行。那么如果我想将一些参数推送到我的 doosimething 函数怎么办?像这样:

doosomething(foo, bar)
4

2 回答 2

1

代替

 $("div").click(doosomething); //function is calling without "()"

 $("div").click(function() { doosomething(foo, bar); });

您想传递一个在调用时调用您的函数的函数。

于 2013-07-21T21:10:29.877 回答
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);

some_variablevar 仍将在用户触发 click 事件时进行评估。

于 2013-07-21T21:09:02.837 回答