使用 jQuery UI Draggable,使用滚动条时如何避免拖动?

Posted

技术标签:

【中文标题】使用 jQuery UI Draggable,使用滚动条时如何避免拖动?【英文标题】:Using jQuery UI Draggable, how to avoid drag when using scrollbar? 【发布时间】:2012-02-06 06:31:51 【问题描述】:

很久以前,我在我的应用程序中创建了一个对话框。对话框非常简单,绝对定位,通过 javascript 在屏幕中居中。

现在我已将 jQuery UI 添加到应用程序中,但我不想仅仅因为它们的工作方式不同而使用 jQuery UI 的对话框。但我确实使用 jQuery UI 使我的对话框可拖动,因为它非常简单:

$('#dialog').draggable();

有一个问题,我的一些对话框有滚动条。 但是使用 draggable 方法,如果有滚动条,它会因为拖动对话框而出错。

有没有办法让对话框在使用滚动条时不拖动? 我注意到有一些方法可以避免元素被拖动,但滚动条不是元素。

谢谢

编辑:JSFiddle:http://jsfiddle.net/FGXnR/

【问题讨论】:

你能不能把这种行为搞得一团糟? 【参考方案1】:

作为一种解决方法,您可以尝试使用handle option,并且只使对话框可以被不可滚动的部分拖动。 (标题之类的。)

jsFiddle Example

@AlexFigueiredo 指出的另一个解决方案只涉及处理大小调整和滚动的wrapping the content / handle in a div——这似乎阻止了点击事件被发送到句柄。

【讨论】:

@AlexFigueiredo 这是不需要标题栏的好方法。即使您将其简化为:jsfiddle.net/FGXnR/1 似乎也有效

以上是关于使用 jQuery UI Draggable,使用滚动条时如何避免拖动?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery UI Draggable 拖动到 iFrame

jQuery Easy UI Draggable(拖动)组件

jQuery UI 拖动(Draggable) - Handles和Cancel

使用网格恢复“无效”不会使用 jQuery UI Draggable 返回到起始位置

为 jQuery UI draggable() 设置超时以防止锁定效果

使用 jQuery UI Draggable,使用滚动条时如何避免拖动?