![](/img/trans.png)
[英]Why does my JavaScript variable return 'null' instead of Html?
[英]Why does my JavaScript function see a mouseevent instead of an empty variable?
我將事件監聽器附加到頁面上的按鈕。 單擊后,它將運行一個功能。
harvestDataBtn.addEventListener("click", harvestData, false);
該函數可以選擇一個值。
function harvestData(idsToHarvest)
我不希望單擊按鈕將任何東西傳遞給該函數。 可選變量idsToHarvest
在調用函數的其他實例中使用,與單擊分開。
但是,當我單擊該按鈕時, idsToHarvest
是鼠標idsToHarvest
。 在我的函數內部制作以下代碼無法正常工作。
if ( idsToHarvest ) {
// do something with string
} else {
// button was clicked, do something else
}
您可以向事件偵聽器傳遞一個函數,該函數包裝對期望的harvestData
調用,並忽略默認情況下傳遞的事件對象:
harvestDataBtn.addEventListener("click", function (e){harvestData();}, false);
el.addEventListener("click", function (event){ ... });
第二個參數(在這種情況下為函數)期望傳入的參數是事件對象。
如果您將同一函數用於其他目的,並且期望參數是其他參數,則它將無法用作事件處理程序。
根據規范 ,它指出:
事件偵聽器包含以下字段:
- 類型 (字符串)
- 回調 (一個
EventListener
)- 捕獲 (布爾值,最初為false)
- 被動的 (布爾值,最初為false)
- 一次 (布爾值,最初為false)
- 移除 (用於簿記目的的布爾值,最初為false)
如前所述,它表明callback
實際上是一個EventListener
,它由所示接口定義:
callback interface EventListener {
void handleEvent(Event event);
};
正如你所看到的,回調時可將計算handleEvent
被調用,它接受1個參數,類型的事件 Event
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.