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 IU droppable-如果在同一区域中删除了另一项,则防止在特定区域中删除该项_Jquery_Jquery Ui - Fatal编程技术网

jQuery IU droppable-如果在同一区域中删除了另一项,则防止在特定区域中删除该项

jQuery IU droppable-如果在同一区域中删除了另一项,则防止在特定区域中删除该项,jquery,jquery-ui,Jquery,Jquery Ui,我需要防止一件物品在同一区域掉落时掉落在特定区域 有没有一种方法(可能通过使用disable函数)可以在jQuery UI中实现这一点 下面是一个例子: 以下代码用于通知用户项目被丢弃的dropzone的ID。这里我需要的是一个函数,如果项目1已经被放置在位置1上,它将阻止用户将项目2放置在位置1上。有什么想法吗?如果某个区域已经被某个项目“占用”,我需要一种防止碰撞的东西 $( ".item" ).draggable({ snap: ".dropzone", stop: fun

我需要防止一件物品在同一区域掉落时掉落在特定区域

有没有一种方法(可能通过使用disable函数)可以在jQuery UI中实现这一点

下面是一个例子:

以下代码用于通知用户项目被丢弃的dropzone的ID。这里我需要的是一个函数,如果项目1已经被放置在位置1上,它将阻止用户将项目2放置在位置1上。有什么想法吗?如果某个区域已经被某个项目“占用”,我需要一种防止碰撞的东西

 $( ".item" ).draggable({
   snap: ".dropzone",
   stop: function (event, ui) {
     var item = this;
     $('#dropzones li').each(function(){
         if($(item).position().left == $(this).position().left)
             alert($(this).attr('id'));
     });
   }
 }); 
谢谢


Laurent

您需要将Dropable添加到DropZone元素中。我还添加了对可拖动对象的恢复。无论物品是否被“丢弃”,您的位置检查都将始终通过。我使用了out和drop事件的组合来启用/禁用某个内容被删除后的删除区域。这与revert的使用一起将获得所需的结果。还有一些方法可以定制“开箱即用”还原功能,以满足您的需要

$(".dropzone").droppable({
    disabled: false,
    out: function ( event, ui ) {
        $(this).droppable("option", "disabled", false)
    },
    drop: function( event, ui ) {
         $(this).droppable("option", "disabled", true);
    }
});

更新了

奇怪!我把代码放在一个遥远的JS文件中,控制台没有显示项目的位置。我遗漏了什么吗?你在用什么浏览器?