用于Javascript函数的jQuery事件处理程序

时间:2011-08-03 09:28:09

标签: javascript jquery html events javascript-events

问题标题有点模糊,所以让我解释一下。

最近才向我解释的一个要求是在我的项目中使用jQuery。但是已经注意到我的函数原样很好,只要它们包含一些jQuery就可以重用。

所以我第一次探索事件监听器的世界(js不在HTML中)

标准的Jquery onclick事件

referenceToElement.onclick = function () { alert('here'); };

我注意到的一点是该函数实际上没有名称。有什么干净的方式做这样的事情:

referenceToElement.onclick = myOldJavascriptFunction();

function myOldJavascriptFunction()
{
    //blahblahblah
}

这是一种好的做法,还是有更好的方法。我现在想到它会不会起作用呢?

3 个答案:

答案 0 :(得分:4)

即使这个问题确实值得投票,因为你可以通过搜索轻松回答所有这些问题,我会给你一个单挑。

referenceToElement.onclick = function () { alert('here'); };

肯定没有jQuery标准的东西。它是纯Javascript,为DOM引用添加属性,在本例中为匿名函数。但是,你现在基本上问了两个问题。

  • 我们可以给匿名函数一个名字吗? => YES
  • 我们可以引用其他地方定义的函数吗? => YES

为了给它命名,我们可以像这样创建一个命名的函数表达式

referenceToElement.onclick = function myFunctionName() { alert('here'); };

要引用一个函数,我们只需传入它的名字

referenceToElement.onclick = myOldJavascriptFunction;

最后,jQuery添加相同事件监听器的语法如下所示:

$( referenceToElement ).click( myOldJavascriptFunction );

答案 1 :(得分:1)

是的,你几乎是对的:

referenceToElement.onclick = myOldJavascriptFunction;

注意缺少括号。这会将对函数的引用传递给onclick事件。另请注意,这是普通的旧JavaScript,而不是jQuery。 jQuery这样做的方式更像是:

$(referenceToElement).click(myOldJavascriptFunction);

答案 2 :(得分:1)

你的第一个例子是普通和普通的javascript,与jQuery完全无关。如果您使用的是jQuery,那么该行将如下所示:

$(referenceToElement).click(function () { ... });

但无论如何,似乎你的问题是关于匿名函数。您可以将函数分配给变量名,或使用函数声明并仍按名称引用该函数:

function myFunction () { ... }

$(referenceToElement).click(myFunction);