单击或双击jQuery的可拖动元素?

时间:2012-02-26 21:39:50

标签: jquery jquery-ui click double jquery-ui-draggable

我希望能够单击或双击也可拖动的元素。如何才能做到这一点?我尝试了各种click(),dblclick()和其他方法,到目前为止还没有。

我目前有一个尴尬的解决方法,比较mouseup和mousedown事件之间的毫秒数,但这仍然需要将元素拖动至少一个像素。

我希望能够像按钮一样点击它,而不必先拖动它。

3 个答案:

答案 0 :(得分:1)

您可以使用短延迟来防止随意拖动,只需点击即可。

$('.draggable').draggable({ delay: 200 });

答案 1 :(得分:0)

假设你不介意拥有一个子元素来接收可拖动外部元素的点击次数,那么可以采取这种方法:

$('#draggableDiv').draggable(
   {
       cancel : 'a'
   });

JS Fiddle demo

cancel选项使用CSS / jQuery选择器来标识哪些元素不应被视为拖动事件的触发器。


已编辑,以解决这样一个事实:至少在Chromium 16 / Ubuntu 11.04中,元素出现是可点击的双击同时可拖动:JS Fiddle example

答案 2 :(得分:0)

其他两个解决方案都没有为我工作,以下是:

$('#draggableDiv').mousedown(function () {
    var thisone=$(this);
    setTimeout(function(){
        thisone.attr("draggable","true");   
    },200);
});