簡體   English   中英

JavaScript addEventListener無法正常工作?

[英]JavaScript addEventListener not working?

我創建了一個變量,該變量選擇一個#bio的ID,然后提醒該bio並獲取null值。

然后,我在生物變量中添加addEventListener,並向其添加焦點和輸入,每次輸入框出現問題時,該焦點都應運行一個名為updateCounter();的函數。

問題是updateCounter沒有運行。 我在Chrome中沒有任何錯誤。 任何人都可以提供解決方案並解釋我要去哪里哪里嗎?

 var bio = document.getElementById('#bio'); // <textarea> element alert(bio); addEventListener(bio, 'focus', updateCounter); // Call updateCounter() on focus addEventListener(bio, 'input', updateCounter); // Call updateCounter() on input function updateCounter(e) { alert('Update Counter ran'); } 
 <input name="title-input" id="bio" type="text" placeholder="Insert Title" /> 

除了某些語法錯誤外,它不起作用的主要原因是因為.addEventListener()是一種在DOM元素上運行的方法。

因此,您需要更改:

addEventListener(bio, 'focus', updateCounter);
addEventListener(bio, 'input', updateCounter);

至:

bio.addEventListener('focus', updateCounter);
bio.addEventListener('input', updateCounter);

此外,您無需在.getElementById()方法中包含#字符:

 var bio = document.getElementById('bio'); bio.addEventListener('focus', updateCounter); bio.addEventListener('input', updateCounter); function updateCounter(e) { console.log('Logging to the console.'); } 
 <input name="title-input" id="bio" type="text" placeholder="Insert Title"/> 

您在此處編寫的是普通JavaScript,而不是jQuery。

但是,這是一個簡單的解決方法:將沒有#id傳遞給document.getElementById 您可以通過將選擇范圍調整為document.getElementById('bio')來解決此問題。 您還需要更加明確:將其設置為bio.addEventListener('focus', updateCounter);

暫無
暫無

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

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