google chrome - Javascript: Why am I getting this Uncaught TypeError: Cannot read property 'addEventListener' of null? -


i trying register event handler appends element dom when button fires click event,e.g.

var b = document.getelementbyid('evt');  var eventdemo = function(event) {      console.log('i handled event');     console.log(event);     console.log(object.prototype.tostring.call(event));   var imgelement = document.createelement('img'); imgelement.src = 'http://lorempixel.com/150/150/'; document.body.appendchild(imgelement);  };  b.addeventlistener('onclick', eventdemo, false); 

but keep getting:

uncaught typeerror: cannot read property 'addeventlistener' of null

why happening

browser: chrome

as you've said script loaded in head tag, time when statement

var b = document.getelementbyid('evt'); 

is executed, there no element in dom having id evt.

use domcontentloaded event add event listeners on element. run after dom loaded.

the domcontentloaded event fired when initial html document has been loaded , parsed, without waiting stylesheets, images, , subframes finish loading. different event - load - should used detect fully-loaded page. incredibly popular mistake people use load domcontentloaded more appropriate, cautious.

code:

document.addeventlistener("domcontentloaded", function(event) {     var b = document.getelementbyid('evt');     b.addeventlistener('click', eventdemo, false); }); 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -