簡體   English   中英

Javascript函數的jQuery事件處理程序

[英]jQuery Event handlers for Javascript functions

問題標題有點晦澀,所以讓我解釋一下。

最近才向我解釋的一項要求是在我的項目中使用jQuery。 但是要注意的是,我的函數仍然可以正常使用,只要它們包含一些jQuery,就可以重用。

因此,我是第一次探索事件偵聽器的世界(js端不在HTML中)

一個標准的Jquery onclick事件

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

我注意到的一件事是該函數實際上沒有名稱。 有沒有做任何類似的干凈方法:

referenceToElement.onclick = myOldJavascriptFunction();

function myOldJavascriptFunction()
{
    //blahblahblah
}

這是個好習慣還是有更好的方法呢? 我想起來,這是否還能奏效?

即使該問題實際上值得一票,因為您可以通過搜索輕松地回答所有這些問題,所以我會給您一個小小的建議。

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

肯定沒有jQuery標准的東西。 它是純Javascript,向DOM引用添加了一個屬性,在本例中為匿名函數。 但是,您現在基本上問了兩個問題。

  • 我們可以給該匿名函數命名嗎? =>是
  • 我們可以引用其他地方定義的函數嗎? =>是

為了給它起一個名字,我們可以像這樣創建一個命名函數表達式

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

要引用一個函數,我們只需傳入它的名稱

referenceToElement.onclick = myOldJavascriptFunction;

最后,jQuery添加相同事件偵聽器的語法如下所示:

$( referenceToElement ).click( myOldJavascriptFunction );

是的,您幾乎是正確的:

referenceToElement.onclick = myOldJavascriptFunction;

請注意缺少括號。 這會將對函數的引用傳遞給onclick事件。 還要注意,這是普通的舊JavaScript,而不是jQuery。 jQuery的實現方式更像是:

$(referenceToElement).click(myOldJavascriptFunction);

您的第一個示例是普通的javascript,與jQuery無關。 如果您使用的是jQuery,則該行應如下所示:

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

但是無論如何,似乎您的問題是關於匿名函數的。 您可以將函數分配給變量名,或使用函數聲明,並仍按名稱引用該函數:

function myFunction () { ... }

$(referenceToElement).click(myFunction);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM