Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
Javascript jQuery用户界面替换为";“距离”;及;延迟“;选择权_Javascript_Jquery Ui - Fatal编程技术网

Javascript jQuery用户界面替换为";“距离”;及;延迟“;选择权

Javascript jQuery用户界面替换为";“距离”;及;延迟“;选择权,javascript,jquery-ui,Javascript,Jquery Ui,根据,从1.12版开始,不推荐使用“距离”和“延迟”选项。具体而言: (10615)互动应该是即时的。这些设置通常用于防止意外拖动,但适当的修复方法是改善用户体验,例如使用手柄避免意外拖动 我正在使用jqueryui开发一个RPG地图生成器。用户可以将磁贴从选择区域拖动到网格以放置它们,也可以单击一个磁贴将其设置为“活动”磁贴,然后单击网格中的磁贴将其转换为“活动”磁贴的副本。我遇到的问题是,在设置的平铺上单击并轻轻拖动会导致平铺被删除。我觉得使用手柄拖动已经在地图上的图块会降低用户体验,因为它

根据,从1.12版开始,不推荐使用“距离”和“延迟”选项。具体而言:

(10615)互动应该是即时的。这些设置通常用于防止意外拖动,但适当的修复方法是改善用户体验,例如使用手柄避免意外拖动

我正在使用jqueryui开发一个RPG地图生成器。用户可以将磁贴从选择区域拖动到网格以放置它们,也可以单击一个磁贴将其设置为“活动”磁贴,然后单击网格中的磁贴将其转换为“活动”磁贴的副本。我遇到的问题是,在设置的平铺上单击并轻轻拖动会导致平铺被删除。我觉得使用手柄拖动已经在地图上的图块会降低用户体验,因为它们必须将指针设置到比图块更小的区域

所以我的问题是:我可以用什么来代替这些函数?最好还是使用老版本的jQueryUI?编写代码来模拟这个功能会更好吗?我应该为已经在网格上的项目使用句柄吗

我想我可以检查被拖动的元素(ui.draggable)是否与drop目标(event.target)相同,但是我在逻辑上遇到了问题

我的代码位于。相关函数为setDragableTiles()和setDropableTitles(),如下所示:


提前感谢!

我会使用
开始
停止
来计算距离。你可以得到每个元素的位置,然后计算从开始到停止的距离。不确定你使用延迟的目的是什么;因此我无法真正说明这一点。我会将
延迟
部分移动到
恢复
t他的方式如果一个项目被点击并移动,它可以意外地恢复;它也可以成为活动的。如果它被真正地拖放,那么它就不会恢复。
function setDroppableTiles() {
    $("#grid .tile").droppable({
        accept: ".tile",
        drop: function(event, ui) {
            drop(event,ui);
        }
    });
}

function setDraggableTiles() {
    $(".tile").not("#grid .placeholder").draggable({
        revert: false,
        helper: "clone",
        stop: function(event, ui) {
            var $ele = $(event.target);
            console.log($ele);
            console.log($(ui.draggable));
            if ($ele.hasClass("tile-set")) {
                $ele
                    .removeClass()
                    .addClass("placeholder tile");
            }
        }
    });

    $("#grid .tile").not(".placeholder").addClass("tile-set");
}