2015-11-18 153 views
0

我已經創建了一個變量,它選擇了#bio的Id,然後我警告生物並獲得null值。JavaScript addEventListener不工作?

我然後加入到的addEventListener生物可變的,並且增加了焦點和輸入給它,它應該運行名爲updateCounter()每當輸入框上

foucessed時間的問題是功能;, 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" />

+0

您的代碼代表JavaScript,而不是jquery。在jquery addEventListener(bio,'focus',updateCounter);變成$(「#bio).on(」focus「,updateCounter(){}); – DinoMyte

+0

如何定義addEventListener? –

+0

@KevinB這是一個標準的JS函數 – Barmar

回答

0

你寫JavaScript的香草在這裏,沒有jQuery的。

但是,這是一個簡單的修復:您通過id沒有#document.getElementById。您可以通過將您的選擇調整爲:document.getElementById('bio')來解決此問題。您還需要更加明確:使其成爲bio.addEventListener('focus', updateCounter);

2

除了一些語法錯誤,它不工作的主要原因是因爲.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"/>

相關問題