superior0325

有时候我们会遇到这样的场景,ul中动态生成li元素,点击li还要触发事件。通过lisObj.onclick = function(){}这种形式添加的事件,在动态增加的li上是无效的。那怎么办呢?

解决办法是使用事件委托,什么是事件委托:利用事件冒泡,在父元素上绑定事件,而不是在子元素上,当子元素被点击时,会冒泡到父元素上触发事件。

优点显而易见,性能高,不用每个元素绑定事件,灵活,不需要大量操作element,还能解决上面场景的问题

下面是一段demo

var ulObj = document.getElementById(\'ulId\');

ulObj.addEventListener(\'click\', function(e){
    e = e || window.event;
    var target = e.target || e.srcElement;
    // target是具体的li对象,可以做一些其他操作

}, false);

分类:

技术点:

相关文章:

  • 2021-12-09
  • 2021-10-19
  • 2021-10-19
  • 2021-11-29
  • 2021-10-19
  • 2021-11-02
  • 2021-10-19
  • 2021-10-19
猜你喜欢
  • 2021-10-19
  • 2021-10-19
  • 2021-05-22
  • 2021-10-19
  • 2021-10-19
  • 2021-11-02
  • 2021-10-19
相关资源
相似解决方案