javascript - What is difference between these two statements? -


this question has answer here:

     var tr = document.getelementsbytagname('tr');         tr[0].onmouseover = function(){           tr[0].style.backgroundcolor = '#ccc';          }         tr[1].onmouseover = function(){           tr[1].style.backgroundcolor = '#ccc';          }         tr[2].onmouseover = function(){           tr[2].style.backgroundcolor = '#ccc';          } 

the first right, when use for loop in following code snippet, "uncaught typeerror: cannot read property 'style' of undefined".

     var tr = document.getelementsbytagname('tr');         for(var i=0;i<tr.length;i++){           tr[i].onmouseover = function(){             tr[i].style.backgroundcolor = '#ccc';            }                     } 

you need update from

 tr[i].onmouseover = function(){     tr[i].style.backgroundcolor = '#ccc';   }    

to

 tr[i].onmouseover = function(event){     event.currenttarget.style.backgroundcolor = '#ccc';   }    

problem - time trying access tr[i] in event handler value of i updated 3 , hence error occured


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -