2015-11-18 110 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"/>

相关问题