问题标签 [drag-and-drop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
25431 浏览

javascript - HTML 拖放可排序表格

曾经想要有一个 HTML 拖放可排序表,您可以在其中对行和列进行排序?我知道这是我会为之而死的东西。有很多可排序的列表,但似乎无法找到可排序的表。

我知道您可以非常接近 script.aculo.us 提供的工具,但我遇到了一些跨浏览器问题。

0 投票
6 回答
2955 浏览

javascript - 是否可以使用 JavaScript 从 / 到 Flash 小程序外部拖放?

假设我想要一个包含 Flash 小程序的网页,并且我想从网页的其余部分拖放一些对象,这可能吗?

如果您知道某个网站可以做到这一点,那就太好了!

0 投票
1 回答
1412 浏览

c++ - QDrag 在拖动时被破坏

我有一个在 QTreeView 中使用拖放的 Windows/Linux Qt 4.3 应用程序。我有两个非常相似的应用程序,它们使用相同的 Qt 库集。拖放在 Linux 上都适用,但在 Windows 上只适用于其中之一。

在不工作的应用程序中,一旦鼠标移动,QDrag 对象就会被删除。它被事件队列中的 DeferredDelete 事件删除,该事件队列在拖动期间仍在 Qt 中处理。我不知道如何查看导致 QDrag 对象过早删除的原因。

我想不出调试这个问题的好方法。我已经比较了来源,找不到任何明显的东西。我曾尝试在另一个应用程序中使用其中一个应用程序的代码。

有什么建议么?

更新:

QDrag 操作失败的原因是 COM 没有成功初始化,所以 QDrag::exec 中对 DoDragDrop 的调用立即返回。QApplication 尝试通过在 qt_init 中调用 OleInitialize 来初始化 COM,但失败并出现错误“设置后无法更改线程模式”。

有趣的是,即使 OleInitialize 是在 main 中完成的第一件事,也会发生这种情况,因此线程模式最初是由某些外部依赖项设置的。在 Windows 上运行的应用程序之间的区别之一是失败的应用程序还包含 .NET 代码,所以这可能就是问题所在。

解决了:

此问题是 COM/CLR 互操作问题。CLR 在初始化时将单元状态设置为 MTA,然后当 Qt 尝试初始化 COM 时失败。Adam NathanGotcha 中使用 STAThreadAttribute 和 Managed C++讨论了这个问题和一个旧的解决方案。在 Visual Studio 2005 中,您可以在Configuration Properties > Linker > Advanced中设置/CLRTHREADATTRIBUTE:STA 编译器选项,将线程属性设置为 STA,而无需创建新的入口点。

0 投票
3 回答
2923 浏览

drag-and-drop - 如何在网页或 C# 中读取原始 (CF_HTML) 剪贴板数据?

如果我将所选网页从 Firefox 拖放到 HTML-Kit,HTML-Kit 会询问我是要粘贴为文本还是 HTML。如果我选择“文本”,我会得到:

根据 MSDN,这是“CF_HTML”格式的剪贴板数据。在 OS X 和 Linux 系统上是否相同?

有没有办法在网页到网页的拖放操作中访问这种详细信息(而不仅仅是纯剪辑片段)?C# WinForms 桌面应用程序怎么样?

0 投票
8 回答
56820 浏览

python - 在 Windows 资源管理器中拖放到 Python 脚本

我想将我的数据文件拖放到 Python 脚本上,让它处理文件并生成输出。Python 脚本接受数据文件的名称作为命令行参数,但 Windows 资源管理器不允许该脚本成为放置目标。

这项工作是否需要在某处进行某种配置?

0 投票
2 回答
900 浏览

dojo - Dojo DnD 接受外部对象

是否可以编写 Dojo DnD 目标以接受外部对象,例如来自文件资源管理器的文件或文件夹?例如,Windows 资源管理器。

0 投票
1 回答
4838 浏览

javascript - jQuery UI droppables - 改变被丢弃的图像

我正在使用jQuery UI 的 droppables并且想知道使丢弃的克隆使用与IMG SRC被丢弃的项目不同的最佳方法是什么。

在那里的照片管理器演示中,缩略图被放入相同大小的插槽中。我想将一个大图像放到一个小插槽中,因此我需要它的克隆来使用我的缩略图而不是完整图像。

有关处理此问题的最佳方法的任何建议?

0 投票
2 回答
1702 浏览

javascript - 如何在 Scriptaculous 中创建可嵌套的可拖动对象?

我正在使用 Scriptaculous 库在帮助最终用户构建列表的应用程序上打造吸引人的 UI。让我们说它用于披萨制作。

要填写订单,您可以将披萨调色板中的披萨尺寸拖到可放置的订单中。一旦它被放在那里,它就会被一个新的 div 替换,该 div 既可拖动(因为您可以通过将其移回调色板来将其丢弃)和可放置(因为您可以向其中添加成分)。

然后,您可以将配料调色板中的配料添加到订单组中的任何比萨饼。

我已经成功实现了这些位并且一切正常。坚持者:如果我尝试从放置的比萨中拖放配料,该比萨被正确标记为可拖动,并且,从良好的角度来看,它位于比萨上方的 z 轴上,它反而会抓取比萨批发。这使我无法撤消成分选择,这是此屏幕的一个关键功能。

关于如何让它做我想做的任何建议?理想情况下,我希望保留简单的拖拽式 UI,因为它比我们以前使用的更直观(一个多阶段的 HTML 表单……不寒而栗……)

0 投票
5 回答
8475 浏览

c - 在winapi中拖放

我有一个需要一些新功能的纯 Winapi 应用程序。其中之一最好实现为两个列表,您可以在列表之间拖放(多个)元素。新功能可以限制为单个对话框。

实现这一点的最快方法是什么?一些想法:

  • 纯 Winapi(是 DetectDrag)
  • 提供此对话框的单独 MFC 或 .NET DLL
  • 嵌入 Microsoft WebBrowser 控件并使用 JQuery

应该避免这些选项中的任何一个吗?
有更好的想法吗?
什么是最快实施的?
关于如何开始的任何指示?

0 投票
4 回答
3183 浏览

delphi - 启用 MultiSelect 的 TListBox 拖放问题

我有一个带有多选和 ExtendedSelect 的 TListBox 都设置为 true。我需要能够拖动列表框中的多个项目来重新排列它们。我的问题是当用户单击已选择的项目而不按住 CTRL 或 SHIFT 键时会发生什么。

案例一:DragMode 设置为 dmManual 在鼠标按下之前清除选择。这将不允许拖动多个项目。

情况 2:DragMode 设置为 dmAutomatic MouseDown 事件从不触发。选择未清除,因此可以拖动,但用户无法通过单击所选项目之一来清除选择。如果选择了所有项目或者用户想要选择的下一个项目是当前选择的一部分,这确实会导致问题。

请注意,仅当您在 OnStartDrag 过程中为 DragObject 分配某些内容时,才会出现此问题。我认为如果 OnStartDrag 仅在用户移动鼠标后启动,问题就会消失。我设置了 Mouse.DragImmediate := false ,但是只要单击列表框中的某个项目,我仍然会触发 StartDrag。

我在这个项目中使用了 Delphi 7,但我在 Delphi 2007 中看到了相同的行为。