jQuery:没有括号的调用函数,但传递参数

时间:2013-07-21 21:06:16

标签: javascript jquery function

是否可以在没有括号的情况下调用jQuery函数,但此时将参数传递给函数?

我有这样的情况:

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

$(function() {

  function doosomething()
  {
    //Doo something
  }

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

});

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

doosomething(foo, bar)

2 个答案:

答案 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。