委托模式 java_委托模式 --- 学习篇

// 委托模式

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

// 看着很奇怪的做法 // var ul = document.getElementById('container'), // li = document.getElementsByTagName('li'), // i = li.length - 1;

// for (; i <= 0; i++) { // li[i].onclick = function() { // this.style.backgroundColor = 'gray'; // } // }

// ul.onclick = function(e) { // var e = e || window.event, // tar = e.target || e.srcElement;

// if (tar.nodeName.toLowerCase() === 'li') { // tar.style.backgroundColor = 'gray'; // } // }

// 预言未来 var article = document.getElementById('article')

article.onclick = function() { var e = e || window.event, tar = e.target || e.srcElement;

if (tar.nodeName.toLowerCase() === 'p') {

tar.innerHTML = '我要更改这段内容';

}

}

var p = document.createElement('p') p.innerHTML = '新增一段内容';

article.appendChild(p);

// btn_container

var g = function(id) { return document.getElementById(id) }

// g('btn').onclick = function() { // // // g('btn').onclick = null; // g('btn_container').innerHTML = '触发了事件'; // }

g('btn_container').onclick = function(e) { // 获取触发的元素 window.event.srcElement ---- 它只对老版本的IE浏览器有效。 var target = e && e.target || window.event.srcElement;

if (target.id === 'btn') {

// 重置父元素内容

g('btn_container').innerHTML = '触发了事件';

}

}

// 用委托模式 封装 一个事件委托方法, 事件委托方方法使用方法:

delegate(document.body, 'button', 'click', function() { console.log('委托成功') })

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值