在事件上调用处理函数

时间:2011-09-07 11:07:32

标签: jquery html

我相信可以在事件处理程序中调用函数,就像这样:

$([selector]).[event](function(){
    handlerFunction();
});

有没有办法以更紧凑的方式做到这一点?像这样:

$([selector]).[event](handlerFunction());

在任何情况下,如何传递给handlerFunction()您正在调用事件处理程序的元素?这是隐含的吗?它在调用和函数中都需要一个参数吗? 我有一个独特的处理函数,根据调用它的项目而行为不同,我不知道如何传递该信息,即使这是正确的。

3 个答案:

答案 0 :(得分:5)

$([selector]).[event](handlerFunction);

触发事件的元素将通过handlerFunction关键字传递给this

function handlerFunction() {
    $(this).hide();
}

在此示例中,handlerFunction将隐藏触发操作的元素。请注意,this是DOM元素,$(this)是jQuery等价物。

答案 1 :(得分:2)

您可以将handlerFunction作为参考传递,如下所示:

$([selector]).[event](handlerFunction);

如果使用handlerFunction(),将调用该函数,并将返回值传递给事件处理程序

答案 2 :(得分:2)

这样做:

$([selector]).[event](handlerFunction)

请勿在{{1​​}}之后添加(),否则您将立即调用它并使用其返回值作为要运行的函数,这将无效它不会返回任何东西 要访问handlerFunction中的元素,请使用handlerFunction,llike $(this)