div在拖动时出现禁止图标

代码结构:
clipboard.png
js代码:

drag_append:function(){
        var self = this;
        var appender = null;
        $('.ullis').find('.lis').on('mousedown',function(event){
            var e = window.event||arguments[0];
            var niu = $(this).clone();
            var  a = self.pic_change(niu.html());
            appender = $(a);
            var cur_Pos = $(this).offset();
            $('#for_drag').append(appender);
            $('#for_drag').css({'display':'block','top':cur_Pos.top,'left':cur_Pos.left,'position':'absolute'});
            $('#for_drag').css({'width':'94px','height':'94px','z-index':'51'});
            $('#for_drag').trigger(event);
            $('#for_drag').css('z-index','51');
            var posX = $('#for_drag').offset().left;
            var posY = $('#for_drag').offset().top;
            $(document).bind('mousemove',function(){
                var e  = window.event||arguments[0];
                var Nposx = e.clientX - posX;
                var Nposy = e.clientY - posY;
                $('#for_drag').css({'top':(Nposy+'px'),'left':(Nposx+'px')})

            })
            $(document).bind('mouseup',function(){
                $(document).unbind('mousemove');
                $(document).unbind('mouseup')
            })

        });

在拖动的时候总是出现禁止图标,没法拖动,请问该怎么破?
刚又看了一下,是拖动时如果碰到相邻元素,会出现禁止符号 ,该怎么破??

阅读 19.9k
4 个回答

目标元素加两个事件ondragenter ondragover事件内容为event.preventDefault()

给元素添加 draggable="true"

【现象】
拖动元素<div>或<img>时出现禁止图标。
【原因解析】
首先要知道出现禁止图标的原因是什么?
被拖动元素,比如说<img>元素,目标元素,拖动时鼠标经过的元素,比如说一个有高度和宽度的<div>元素。当被拖动元素<img>拖动中经过目标元素<div>时,如果目标元素<div>不能接收被拖动元素的drop时,就会出现禁止标记。
【解决方案】
在目标元素加事件,类似这样:<div ondragenter="dragenter()" ondragover="dragover()">,在dragenter(evt) {evt.preventDefault()),就能消除禁止标记的出现。

新手上路,请多包涵

在mousemove的dom上添加css样式 user-select: none; 防止鼠标变成🚫(禁止) 这个图标,从而导致无法选中。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题