问题标题有点模糊,所以让我解释一下。
最近才向我解释的一个要求是在我的项目中使用jQuery。但是已经注意到我的函数原样很好,只要它们包含一些jQuery就可以重用。
所以我第一次探索事件监听器的世界(js不在HTML中)
标准的Jquery onclick事件
referenceToElement.onclick = function () { alert('here'); };
我注意到的一点是该函数实际上没有名称。有什么干净的方式做这样的事情:
referenceToElement.onclick = myOldJavascriptFunction();
function myOldJavascriptFunction()
{
//blahblahblah
}
这是一种好的做法,还是有更好的方法。我现在想到它会不会起作用呢?
答案 0 :(得分:4)
即使这个问题确实值得投票,因为你可以通过搜索轻松回答所有这些问题,我会给你一个单挑。
这
referenceToElement.onclick = function () { alert('here'); };
肯定没有jQuery标准的东西。它是纯Javascript,为DOM引用添加属性,在本例中为匿名函数。但是,你现在基本上问了两个问题。
为了给它命名,我们可以像这样创建一个命名的函数表达式
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);