Normalmente no hago este tipo de pregunta/respuesta, pero pensé que lo haría, ya que he visto esta pregunta más de 20 veces, y ni una sola respuesta en realidad funciona. En resumen, el problema es que si tiene contenido desplazable (overflow: auto;
en cualquier parte dentro de un elemento jQuery arrastrable, cuando hace clic y arrastra la barra deslizadora, el contenedor arrastrable principal arrastra consigo. Así que dediqué un tiempo a encontrar una soluciónDeshabilitar el arrastre de jQuery al desplazar el contenido del elemento arrastrable
He aquí un ejemplo de algo de hTML que presentan este problema:
<div class="draggable" style="width:100px;height:100px;">
<div id="content" style="width:80px;height:80px;overflow:auto;">
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit.
</div>
</div>
La forma típica de inicializar un elemento que se pueda arrastrar, es algo como esto:
$(".draggable").draggable()
Desafortunadamente, esta respuesta solo funciona si realmente ocurre algún desplazamiento como resultado de un clic en la barra de desplazamiento. Si tuviera que presionar en la barra de desplazamiento sin desplazarse, el código jQuery UI/Draggable todavía comenzará su arrastre.(Intenté esto en el jsfiddle publicado con Chrome 23 Beta, simplemente haga clic en la barra de desplazamiento sin desplazarse) – eleotlecram
Esto requiere escuchar el evento de desplazamiento de "*" (todo) y agregar que el desplazamiento es verdadero para los datos. La otra respuesta es más autónoma y mejor para legibilidad más adelante. – mgwidmann