javascript事件委托代码实例

快乐打工仔 分类:实例代码

分享一段代码实例,它演示了javascript事件委托功能。

所谓的事件委托就是将自己的事情委托给别人干。

比如下面的代码就是,本来应该注册在li身上的事件处理函数,利用冒泡效果注册在父元素ul身上。

代码实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style type="text/css">
li {
  height: 30px;
  line-height: 30px;
  background: #ccc;
  list-style-type: none;
  margin: 3px;
}
</style>
<script type="text/javascript">
window.onload = function() {
  var oUl = document.getElementById('ul');
  var oLi = oUl.getElementsByTagName('li');
  var num = oLi.length;
 
  function addEvent(ele, type, fn) {
    if (ele.addEventLisenter) {
      ele.addEventLisenter(type, fn, false)
    } else if (ele.attachEvent) {
      ele.attachEvent("on" + type, fn)
    } else {
      ele["on" + type] = fn;
    }
  }
 
  function clickFn(event) {
    var event = event || window.event;
    var tar = event.target || event.srcElement;
    for (var index = 0; index < oLi.length; index++) {
      oLi[index].style.color = "";
    }
    if (tar.nodeName.toLowerCase() == "li") {
      tar.style.color = 'red'
    }
  }
  addEvent(oUl, 'click', clickFn);
}
</script>
</head>
<body>
  <ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
  </ul>
</body>
</html>

上面的代码实现的效果是可以将当前点击的li元素字体颜色设置为红色。

我们并没有给li元素直接注册click事件处理函数,而是注册在它的父元素之上,利用冒泡原理,将自己的事情交给父元素做。

javascript事件委托代码实例,这样的场景在实际项目中还是用的比较多的,关于javascript事件委托代码实例就介绍到这了。

javascript事件委托代码实例属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容