html中div中的onclick事件,javascript – html div onclick事件

问题是点击锚点仍然触发了您的< div>中的点击.这就是所谓的“

event bubbling”.

其实有多种解决方案:

>检查DIV点击事件处理程序是否实际的目标元素是锚点

→ jsFiddle

$('.expandable-panel-heading').click(function (evt) {

if (evt.target.tagName != "A") {

alert('123');

}

// Also possible if conditions:

// - evt.target.id != "ancherComplaint"

// - !$(evt.target).is("#ancherComplaint")

});

$("#ancherComplaint").click(function () {

alert($(this).attr("id"));

});

>从锚点击监听器停止事件传播

→ jsFiddle

$("#ancherComplaint").click(function (evt) {

evt.stopPropagation();

alert($(this).attr("id"));

});

您可能已经注意到,我从示例中删除了以下选择器部分:

:not(#ancherComplaint)

这是不必要的,因为没有类的.expandable-panel-heading也有#ancherComplaint作为其ID.

我假设你想抑制锚的事件.这不能以这种方式工作,因为两个选择器(您和我的)选择完全相同的DIV.选择器在调用时对听众没有影响;它只设置监听器应该注册到的元素的列表.由于这两个版本的列表是一样的,所以没有区别.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值