jquerydrag&;删除视觉错误
我尝试使用可排序列表进行拖放,但在拖放事件中出现了一个视觉错误。 当我将一条线拖动到另一个位置时,在drop事件中,该线将处于新位置。 但拖动线,从视觉上返回到其以前的位置 我只在firefox上有这个bug 你可以试试这个 如何删除此视觉错误plz 这是我的代码: HTML: JS(在$(document.ready(function(){});)中):jquerydrag&;删除视觉错误,jquery,html,drag-and-drop,Jquery,Html,Drag And Drop,我尝试使用可排序列表进行拖放,但在拖放事件中出现了一个视觉错误。 当我将一条线拖动到另一个位置时,在drop事件中,该线将处于新位置。 但拖动线,从视觉上返回到其以前的位置 我只在firefox上有这个bug 你可以试试这个 如何删除此视觉错误plz 这是我的代码: HTML: JS(在$(document.ready(function(){});)中): var-current\u元素=null; var skeleton=$('); $('li')。在({ dragstart:函数(e){
var-current\u元素=null;
var skeleton=$(');
$('li')。在({
dragstart:函数(e){
当前_元素=$(此);
var dt=e.originalEvent.dataTransfer;
dt.effectAllowed=“move”;
dt.setData(“文本”、“Foo”);
},
绘图:功能(e){
骨架后(当前_元素);
当前_元素。show();
skeleton.detach();
}
});
$('li')。关于('dragover dragenter drop',函数(e){
如果(e.type=='drop'){
e、 originalEvent.dataTransfer.getData('text');
当前元素触发器('dragend');
返回false;
}
e、 OriginaleEvent.dataTransfer.dropEffect='move';
$(this)[skeleton.index()<$(this.index()?'在':'之前](skeleton);
当前_元素。隐藏();
返回false;
});
我在windowsOk上使用FF 48.0.2时,您的JSFIDLE可以正常工作,谢谢。我使用的是linux FF 49。我在网上尝试过的其他脚本,效果很好。所以,我认为有可能删除这个人工制品。您的JSFIDLE在windowsOk上使用FF 48.0.2可以正常工作,谢谢。我使用的是linux FF 49。我在网上尝试过的其他脚本,效果很好。所以,我认为有可能移除这个人工制品。
<ul>
<li draggable="true">test 1</li>
<li draggable="true">test 2</li>
</ul>
[draggable] {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
ul{
list-style-type: none;
}
ul li.skeleton{
border: 1px dashed #CCC;
background: none;
}
ul li{
height: 22px;
margin: 10px 2px 0px 2px;
padding: 10px 2px;
line-height: 22px;
border: 1px solid #ebebeb;
}
var current_element = null;
var skeleton = $('<li class="skeleton"></li>');
$('li').on({
dragstart: function(e) {
current_element = $(this);
var dt = e.originalEvent.dataTransfer;
dt.effectAllowed = "move";
dt.setData("text", "Foo");
},
dragend: function(e) {
skeleton.after(current_element);
current_element.show();
skeleton.detach();
}
});
$('li').on('dragover dragenter drop', function(e){
if (e.type == 'drop') {
e.originalEvent.dataTransfer.getData('text');
current_element.trigger('dragend');
return false;
}
e.originalEvent.dataTransfer.dropEffect = 'move';
$(this)[skeleton.index() < $(this).index() ? 'after' : 'before'](skeleton);
current_element.hide();
return false;
});