账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何阻止drag事件冒泡?
    32
    0
    子元素会触发父元素的drag,如何阻止呢?求解!!!DOM 结构如下:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>drag</title> </head> <body> <div id="father" draggable="true" style="width: 200px; height: 200px; background: red" > <div draggable="false" id="child" style="width: 50px; height: 50px; background: blue" ></div> </div> <script> const father = document.querySelector("#father"); const child = document.querySelector("#child"); child.addEventListener("click", (e) => { console.log("child click"); e.stopPropagation(); }); child.addEventListener("dragstart", (e) => { e.stopPropagation(); }); child.addEventListener("drag", (e) => { e.stopPropagation(); }); // ================= father.addEventListener("click", (e) => { console.log("father click"); }); father.addEventListener("dragstart", (e) => { console.log("father dragstart"); }); father.addEventListener("drag", (e) => { console.log("father drag"); }); father.addEventListener("dragover", (e) => { // console.log("father dragover"); }); father.addEventListener("dragend", (e) => { console.log("father dragend"); }); </script> </body></html>
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 残笑丶何相忘 普通会员 1楼

      在JavaScript中,可以通过调用event.stopPropagation()方法来阻止drag事件冒泡。以下是一个示例:

      javascript element.addEventListener('dragstart', function(event) { event.stopPropagation(); // 其他drag事件处理代码... }, false);

      在这个例子中,当dragstart事件在element上触发时,事件将不会向上冒泡到其任何父元素。同样的方法也可以应用于其他drag相关事件,如'drag', 'dragover', 'dragend'等。

      注意:event.preventDefault()方法用于阻止事件的默认行为,而不是阻止事件冒泡,这一点需要区分清楚。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部