首頁 >web前端 >js教程 >如何在 JavaScript 中將參數傳遞給事件監聽器函數?

如何在 JavaScript 中將參數傳遞給事件監聽器函數?

Linda Hamilton
Linda Hamilton原創
2024-12-19 00:23:10557瀏覽

How Can I Pass Arguments to Event Listener Functions in JavaScript?

事件監聽器:向監聽器函數傳遞參數

使用addEventListener 方法附加事件監聽器時,可能存在需要傳遞參數的情況監聽器函數的參數。其中一個場景涉及檢索在偵聽器範圍之外定義的變數的值。

場景和問題

考慮以下程式碼:

var someVar = some_other_function();
someObj.addEventListener("click", function(){
    some_function(someVar);
}, false);

這裡,someVar是在監聽器函數外部定義的變數,我們的目標是當發生「點擊」事件。但是,在偵聽器函數中,someVar 被視為新變量,導致無法存取其預期值的問題。

建議的解決方案:利用事件目標的屬性

不要明確傳遞參數,而是考慮存取事件目標的屬性來檢索必要的資訊。在上面的範例中,您可以將自訂屬性myParam 附加到someObj,如下所示:

const someInput = document.querySelector('button');
someInput.addEventListener('click', myFunc, false);
someInput.myParam = 'This is my parameter';

function myFunc(evt)
{
  window.alert(evt.currentTarget.myParam);
}

現在,在偵聽器函數myFunc 中,您可以透過引用evt.currentTarget.myParam 來訪問參數值。此方法無需明確傳遞參數並確保獲得正確的值。

以上是如何在 JavaScript 中將參數傳遞給事件監聽器函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn