JS设计模式之委托模式

委托模式:多个对象接收并处理同意请求,他们将请求委托给另一个对象统一处理请求。

 

(例)一无序列表,点击li元素当前元素发生一系列改变。

ul.onclick = function(){
     var e = e || window.event;
            tar = e.target || e.srcElement;
      if(tar.nodeName.toLowerCase() === 'li'){
            tar.style.backgroundColor = 'grey'
      }
}  //将子元素的事件委托给父元素,通过事件冒泡传递,再判断事件源的某种特性(类名、节点名称、自定义属性等)来执行某一业务逻辑

将子元素的事件委托给父元素,再通过一些条件判断子元素的特性,不仅可以优化页面中事件的数量,还可以对尚未添加的元素绑定事件。

var p = document.createElement('p');
p.innerHTML = '新增p标签';
div.appendChild('p');

div.onclick = function(){
     var tar = e && e.target || window.event.srcElement;
      if(tar.nodeName.toLowerCase() === 'p'){
            tar.innerHTML = '我要改变添加的P标签的内容。'
      }
}  //为div元素添加点击事件,当新增子节点后,点击p元素仍可以触发相应逻辑

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值