【发布时间】:2018-03-26 13:06:33
【问题描述】:
我正在尝试按照this answer 中的示例使用多个元素实现拖放:http://jsfiddle.net/hQnWG/614/
该示例适用于 jQuery 1.9.1 和 jQuery UI 1.9.2(最高 1.10.1),但只要我使用更新版本,如 jQuery 1.11.3 和 jQuery UI 1.10.2 或更新版本,我得到以下问题。
选择多个元素并开始将底部最选择的元素慢慢向顶部拖动到顶部时,右在它将捕捉到下一个位置,则以下js错误是蜂窝:
Uncaught TypeError: Cannot read property 'insertBefore' of null
at t.(/hQnWG/614/anonymous function).(anonymous function)._rearrange (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:7:15171)
at t.(/hQnWG/614/anonymous function).(anonymous function)._rearrange (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:5:5028)
at t.(/hQnWG/614/anonymous function).(anonymous function)._mouseDrag (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:7:6)
at t.(/hQnWG/614/anonymous function).(anonymous function)._mouseDrag (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:5:5028)
at t.(/hQnWG/614/anonymous function).(anonymous function)._mouseMove (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:5:12328)
at t.(/hQnWG/614/anonymous function).(anonymous function)._mouseMove (https://code.jquery.com/ui/1.10.2/jquery-ui.min.js:5:5028)
at HTMLDocument.o._mouseCapture._mouseDistanceMet._mouseDelayMet._mouseMoveDelegate (VM687 jquery-ui.min.js:5)
at HTMLDocument.dispatch (VM251 jquery-1.11.3.min.js:4)
at HTMLDocument.r.handle (VM251 jquery-1.11.3.min.js:4)
这是一个带有升级 jQuery 版本的示例 jsfiddle 的分支: http://jsfiddle.net/v3p6wsk2/6/
我尝试调试它,但找不到任何解释如何拖动项的 parentNode 可以为空。
我什至在 jQuery UI 1.10.2. change log 中找不到任何关于可能破坏该脚本的更改的提示。
很遗憾,我无法更改我正在处理的项目中的版本。是否有可能使用上述版本?
【问题讨论】:
-
不是一个完整的例子。请查看:stackoverflow.com/help/mcve 我们需要查看您的代码。另外,我怀疑您可能需要为 Sortable 定义
items选项。 -
第二个 jsfiddle 链接实际上是有错误的代码,也是我隔离问题的地方。与第一个 jsfiddle 的唯一区别在于 lib 版本。
-
感谢您的澄清,不清楚。我试图复制你描述的问题。我拖了 1 个项目,没问题。我拖了2个项目,没问题。我“慢慢地”拖了 2 个项目(你能定义一下你的意思吗?),没问题。我正在 Ubuntu 上使用 FireFox 59(32 位)进行测试。
-
注意到您没有正确使用资源进行小提琴,将 jQuery 移动到资源部分并进行了测试:jsfiddle.net/Twisty/wzuak8as/1 我仍然无法复制该问题。
-
好的,我只能在 Chromium 中复制错误。此外,它不是一个表演停止者。我仍然可以继续使用适当的功能进行拖放。你也是这种情况吗?我将从 Minimized 版本切换到 Uncompressed 版本,以确定失败的确切代码行。
标签: jquery jquery-ui jquery-ui-sortable