jquerydrag&;删除视觉错误

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){

我尝试使用可排序列表进行拖放,但在拖放事件中出现了一个视觉错误。 当我将一条线拖动到另一个位置时,在drop事件中,该线将处于新位置。 但拖动线,从视觉上返回到其以前的位置

我只在firefox上有这个bug

你可以试试这个

如何删除此视觉错误plz

这是我的代码: HTML:

JS(在$(document.ready(function(){});)中):

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;     
    });