2017-03-06 30 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