如何让外面div超链接不影响内部的超链接a

本文介绍如何通过cancelBubble、stopPropagation及preventDefault方法阻止HTMLDOMEvent对象的事件冒泡与默认行为,并提供具体实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原来外面套div的超链接完全可以不影响内部的超链接或者div的onclick的超链接,只要阻止事件冒泡,先上理论:

1、cancelBubble(HTML DOM Event 对象属性) :如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。

2、stopPropagation(HTML DOM Event 对象方法):终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。

3、 preventDefault(HTML DOM Event 对象方法)通知浏览器不要执行与事件关联的默认动作。

例子:
    function stopBubble(e)  
    {  
        if (e && e.stopPropagation)  
            e.stopPropagation()  
        else 
            window.event.cancelBubble=true 
    }  

把这个stopBubble(e)函数放到你想要的阻止事件冒泡函数里面就可以阻止事件冒泡了
  话说其实还有阻止事件默认行为:

功能:阻止事件默认行为

function stopDefault( e ) {

     // 阻止默认浏览器动作(W3C)

     if ( e && e.preventDefault ) {

         e.preventDefault();

     } else {

        // IE中阻止函数器默认动作的方式

        window.event.returnValue = false;

    }

    return false;

}

  问题的理论基础知道,那这样用的方法其实就是外面的超链接继续是a href或者div的onclick来修改location.href,但是内部则在跳转的location.href之后要执行stopBubble事件。

效果结果如下:


这个外面的手机端的整行有一个超链接,里面的购买100元起是另一个超链接。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值