javascript - js冒泡事件,事件绑定出现问题?
PHP中文网
PHP中文网 2017-04-11 10:43:16
[JavaScript讨论组]

有个按钮。里面嵌套了一个图标,点击按钮时,我需要得到按钮的data-itemid值,我把事件绑定到button上,用$(event.target).data("itemid")取值,有时值为undefined,经过调试,发现如果点击了i标签就出现这种情况了。查资料得知$(event.target)获取的是事件源,所以点到i上就无法取到btn的值了。这个问题该如何解决?
代码如下:



jq:
$(".delbtn").click(function (event) {
       console.log(event.target);
        console.log($(event.target).data("itemid"));
 }
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
怪我咯

这里,你要清楚event.target和$(this)的区别,event.target响应的是"click"这个事件的元素,不仅仅是绑定“click”的元素,你点击到了i标签,event.target就是i

PHP中文网

个人习惯,经供参考:

var $t = $(this);
var itemid = $t.data('itemid');

console.log(itemid);
PHP中文网
event.target //是点击触发的元素, 点击到<i>, 那么event.target就是<i>

//单击事件是绑定在button上的, 所以应使用$(this), 点击<i>时, 事件冒泡到button上, 触发该方法
$(this);  //button的jq对象

console.log($(this).data('itemid'));
阿神

$(event.currentTarget).data("itemid")试试看吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号