美文网首页
拖动属性draggable

拖动属性draggable

作者: 方_糖 | 来源:发表于2021-07-12 17:46 被阅读0次
    一个奇怪的现象:代码如下,设置div是可拖动的,拖动div时会触发dragStart事件
            <div draggable="true" ondragstart="dragStart(event)">
                <a href="#">xxxxx</a>
            </div>
    
            <script>
                function dragStart(e) {
                    console.log(e.target)
                }
            </script>
    

    奇怪的现象如下:当拖动a元素的时候也会触发div的拖动事件


    奇怪的现象.gif

    正常的现象应该是,只有div绑定了拖动事件,那么只有div才会触发事件,下面我们演示一下正常现象。
    我们把a元素改成p元素,其他不变:

            <div draggable="true" ondragstart="dragStart(event)">
                <p>xxxxx</p>
            </div>
    

    这时,不管怎么拖动目标元素都是div而不是p


    正常的现象.gif

    现在我们把p元素加上draggable="true"

            <div draggable="true" ondragstart="dragStart(event)">
                <p draggable="true">xxxxx</p>
            </div>
    

    可以看到这时p又可以触发div的拖拽事件了


    添加draggable属性的p元素.gif
    结论

    综上,只有绑定了draggable="true"的元素才可以通过冒泡触发父元素的拖拽事件,而a元素并没有绑定draggable="true",为什么也能触发呢?
    因为链接和图像默认是可拖动的https://www.runoob.com/tags/att-global-draggable.html),他们默认已经绑定了draggable="true"

    相关文章

      网友评论

          本文标题:拖动属性draggable

          本文链接:https://www.haomeiwen.com/subject/cccdpltx.html