我相信可以在事件处理程序中调用函数,就像这样:
$([selector]).[event](function(){
handlerFunction();
});
有没有办法以更紧凑的方式做到这一点?像这样:
$([selector]).[event](handlerFunction());
在任何情况下,如何传递给handlerFunction()
您正在调用事件处理程序的元素?这是隐含的吗?它在调用和函数中都需要一个参数吗?
我有一个独特的处理函数,根据调用它的项目而行为不同,我不知道如何传递该信息,即使这是正确的。
答案 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)
。