事件相关

1.for循环与事件的配合

初学者容易遇到的坑,将事件嵌入for循环中,实际执行时,确触发不了事件。
原示例如下:




    
    Title
    
    



控制台的输出结果线束i已经等于5了,并且鼠标进入图片时,mouseover事件并不能触发。
修改代码如下:




    
    Title
    
    



注意上述代码中的each_li.index = i;var url_li = 'url("image/0' + (this.index + 1) + 'big.jpg") no-repeat';这两句,使得for循环中i的值能够及时保留到each_li.index中,后续this.index能够直接调用。

2.querySelectorAll与getElementsByTagName

document.querySelectorAll方法取得的元素可以使用forEach方法,用document.getElementsByTagName方法取得的元素不能使用forEach方法。(chrome中是这样)
示例:
使用document.getElementsByTagName方法:




    
    Title
    
    















结果控制台报错


使用 document.getElementsByTagName方法:




    
    Title
    
    















运行结果正常。
若要坚持使用document.getElementsByTagName方法,则可以使用闭包实现同样的功能。




    
    Title
    
    















你可能感兴趣的:(事件相关)