为了账号安全,请及时绑定邮箱和手机立即绑定

js事件委托,e.target的子元素如何触发事件?

js事件委托,e.target的子元素如何触发事件?

慕姐8265434 2018-11-22 18:15:20
实现点击table内的td时,把td绑定的data反馈出来。<div class='wrapper'>    <table>        <thead>.......</thead>        <tbody>            <tr>                <td data-data='1'>1</td>                ....                <td data-data='2'><font color='red'>2</font></td>                ....            </tr>            ....        </tbody>    </table></div>table是动态生成的,把事件绑定到wrapper上,用target触发标签td的时候,因为有的td内部有font这个子元素,点击到font元素的区域无法触发。$wrapper = document.querySelector('.wrapper');$wrapper.addEventListener('click', function(e){    if(e.target.tagName.toLowerCase === 'td') {        console.log(e.target.dataset.data);    }},false);
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

$wrapper = document.querySelector('.wrapper');

$wrapper.addEventListener('click', function(e) {

  for (var el = e.target; el !== e.currentTarget; el = el.parentElement) {

    if(el.tagName.toLowerCase() === 'td') {

        return console.log(el.dataset.data);

    }

  }

}, false);


查看完整回答
反对 回复 2018-12-11
  • 1 回答
  • 0 关注
  • 1069 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号