2017-03-06 53 views
4

我正在使用jQuery UI Sortable插件当然允许我的用户拖放列表中的元素,在列表中更改我正在触发ajax调用来保存有序列表。jQuery可排序但点击工作

但是,一个用户抱怨说,当列表需要滚动时,很难拖放。所以基本上我试图做的是,而不是左键单击拖动,然后释放左键单击放下。

你只要点击元素,它就会成为活动的“拖动”元素,用户可以在屏幕上移动鼠标,它会跟着,然后在第二个左键点击取消激活“删除”元素。

我已经看过他们的文档,但我似乎无法找到任何可以帮助我的东西(http://api.jqueryui.com/sortable/)。有没有人有任何想法或插件,实现这一目标?

问候

+0

你能添加一个工作片段吗? – Jai

+0

https://jsfiddle.net/9sgkavd4/只需点击并拖动一个项目即可。 – Canvas

回答

3

这会帮助你与这样的:你只留下点击的元素 ”,它会成为活动‘拖’的元素,用户可以把他们的鼠标在屏幕上,它会跟,然后在第二次左键点击取消激活“删除”元素。

HTML:

<div id="draggable" class="ui-widget-content"> 
    <p>Drag me around</p> 
</div> 

的Javascript:

$(function() { 
    var dragging = false; 

    $("#draggable").draggable(); 
    $("#draggable").mouseup(function(e){ 
    if(!dragging){ 
     dragging = true; 
     e.preventDefault(); 
     return false; 
    } 
    else{ 
     dragging = false; 
    } 
    }) 
    }); 

Codepen例如: http://codepen.io/xszaboj/pen/JWbzax

我希望这是你所需要的。

附注。由于触发了不同的事件,这对于Chrome上的触摸屏监视器不起作用。

+0

我只是试过你的codepen示例,只需一个单击左键就没有任何反应,这也需要插入一个项目回到UL,就像JQuery UI Sortable那样 – Canvas

+0

适用于我使用的浏览器是什么? – xszaboj

+0

@Canvas也适合我,我把他的代码和你的代码合并在一起:https://jsfiddle.net/9sgkavd4/1/看看这是否适合你。 – Zeus