Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jQuery-多个重叠的droppable会导致无法阻止的Drops_Jquery Ui_Droppable - Fatal编程技术网

Jquery ui jQuery-多个重叠的droppable会导致无法阻止的Drops

Jquery ui jQuery-多个重叠的droppable会导致无法阻止的Drops,jquery-ui,droppable,Jquery Ui,Droppable,我有一个拖拽装置,它被放置在一个等距网格上,网格上有重叠的拖拽装置。下拉框是灰色的瓷砖,img标签,看起来像第一个附加的图像。当可拖动设备位于其上方时,它们被设置为高亮显示蓝色 以下是droppable的源代码: $(".sprite").droppable({ drop: function(event,ui) { object_id = ui.draggable.attr("id").replace("sprite_","

我有一个拖拽装置,它被放置在一个等距网格上,网格上有重叠的拖拽装置。下拉框是灰色的瓷砖,img标签,看起来像第一个附加的图像。当可拖动设备位于其上方时,它们被设置为高亮显示蓝色

以下是droppable的源代码:

        $(".sprite").droppable({
            drop: function(event,ui) {
                object_id = ui.draggable.attr("id").replace("sprite_","");
                set_action('move_object',$(this).attr("id"));
                set_target(object_id);
                ui.draggable.removeClass("holding");
            },
            over: function(event, ui) {
                $(this).attr("src",$(this).attr("src").replace('.png','-hover-blue.png'));
            },
            out: function(event, ui) {
                $(this).attr("src",$(this).attr("src").replace('-hover-blue.png','.png'));
            },
            tolerance: 'pointer'
        });
基本上,我希望a)一次高亮显示一个磁贴,b)高亮显示的磁贴就是放置对象的磁贴

我试过各种各样的宽容,但都没有用

图像:

i、 imgur.com/dGx9X.png


i、 imgur.com/vb1d9.png

当可拖放设备在可拖放设备上移动时,应停用所有其他可拖放设备并激活当前可拖放设备。那么,让drop效果成为活动Dropable就很简单了

在over函数中

$(".sprite").not($(this)).removeClass("over")
   .each(function(){
     $(this).attr("src",$(this).attr("src").replace('-hover-blue.png','.png'));
   });
$(this).addClass("over");
然后在下拉列表中将$(this)替换为$(“.over”)