我試圖檢測<select>動態添加的元素何時更改了其選項。但是,當我更改它時它不會觸發。
編碼:
var diP = document.createElement("select");
diP.add(option);
diP.add(option2);
diP.addEventListener("change", alert("Test"));
div2.appendChild(diP);
當我更改選項時,代碼不會發出任何警報。
uj5u.com熱心網友回復:
您需要將回呼作為引數傳遞給事件偵聽器,其中包括事件型別。
diP.addEventListener("change", () => alert("Test"));
另外,請檢查您div2是否正確選擇了 HTML 元素。
HTML:
<div class="div2"> ... </div>
JS:
const div2 = document.querySelector('.div2')
uj5u.com熱心網友回復:
對于 addEventListener 的,你需要傳遞函式的名稱,而不是呼叫函式。或者你可以給它傳遞一個匿名函式。
function funcName(){
}
diP.addEventListener("change", funcName);
或者
diP.addEventListener("change", function(){
console.log(this.value)
});
uj5u.com熱心網友回復:
我假設您在第一次執行腳本時會看到一個警報,因為您沒有將函式傳遞給addEventListener您呼叫它。
為了在輸入更改時顯示警報,您需要傳遞一個回應change事件運行的函式。所以你的代碼應該是這樣的:
....
diP.addEventListener("change", () => alert("Test"));
...
這樣你就說“運行一個函式,每次輸入更改時都會發出警報”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/526172.html
