2016-08-24 2 views
1

У меня есть перетаскиваемый элемент DOM с использованием jquery.JQuery: Draggable sensibility

Если клиент нажимает на него без перемещения, перетаскиваемый старт не вызывается, и он действует так, как будто он не перетаскивается.

Когда клиенты нажимают на него и перемещают мышь на 1 пиксель, удерживая нажатой клавишу, начинается перетаскивание. Событие запускается, применяются классы и т. Д.

Есть ли способ инициировать запуск перетаскивания, только если клиент щелкнул элемент и переместил мышь не менее чем на 10 пикселей вместо этого?

Примечание: это не связано с прокруткой.

Пример кода из демо на https://jqueryui.com/draggable/:

<style>#draggable { width: 150px; height: 150px; padding: 0.5em; }</style> 
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 

<script> 
$(function(){ 
    $("#draggable").draggable(); 
    //goal is to only starts dragging if mouse moved more than 10px 
}); 
</script> 

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

Любой код для обмена? –

+0

Я добавил код к вопросу. – RainingChain

+0

http://api.jqueryui.com/draggable/#option-distance –

ответ

2

Похоже, что вы хотите использовать свойство «расстояние». http://api.jqueryui.com/draggable/#option-distance

«Расстояние в пикселях после мышки должно перемещаться до начала перетаскивания. Эта опция может использоваться для предотвращения нежелательного перетаскивания при нажатии на элемент».

$("#draggable").draggable({ 
    distance: 10 
});