【问题标题】:jquery ui 1.8.16 & firefox 6 - sortable not working properlyjquery ui 1.8.16 & firefox 6 - 可排序无法正常工作
【发布时间】:2011-08-29 07:04:41
【问题描述】:

当我使用 jQuery(最新版本)开发应用程序时,我的 firefox 浏览器决定将自身更新到版本 6。在那之后,我的标准 jquery ui“可排序”功能无法正常工作。我在 jquery 网站上试过,同样的事情。尝试使用 jquery ui 包下载的演示文件 => 相同的结果。没有黑客,没有保管,只是香草。

以下是症状:开始排序(通过单击并拖动鼠标),可排序元素粘在鼠标指针上。好的,直到那里。但是当释放鼠标左键时,可排序元素会下降到其最终位置,并且突然间,当我将鼠标移动到其他位置(没有单击鼠标按钮)时,最后一个排序元素会粘回鼠标并随着指针移动。

单击页面上的某处可将可排序元素移回最终放置的位置,但只要我再次移动鼠标,该元素就会再次粘住并且不会下降。

有人遇到过firefox 6这样的bug吗?

仅供参考,这个可排序的功能在 FF 5.0 上就像一个魅力

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable firefox6


    【解决方案1】:

    好的,伙计们!!我找到了这种奇怪行为的根本原因!!!它的名称是 Firefox 的“FireQuery 1.0”插件。

    当我看到 Guntram 告诉我他正在使用 FF6 和最新版本的 jQuery + jQuery-UI 完全没有问题时,我想知道这是否可能来自一个插件。因此,我禁用了所有内容并一个接一个地重新激活它们,每次启用后都重新启动。我找到了有罪的插件:FireQuery 1.0。

    并不是说这个插件不好,但至少,如果你遇到和我一样的问题,至少现在你可能知道根本原因。 ;)

    【讨论】:

      【解决方案2】:

      对我来说,排序工作正常。 元素不会意外移动。

      当我在一个元素中有一个项目时,比如一个按钮或一个文本字段,什么都不会发生。 如果我右键单击字段或按钮,则会出现光标(单击按钮)。 当我退出 Windows 右键单击​​选项菜单时,我可以在文本字段中输入...

      还是很奇怪的行为。我不知道它在 ff5 上是如何工作的,我在 ff6 上,最新的 jquery 版本。

      编辑:

      在我找到这个之后: http://weblogs.asp.net/jeffwids/archive/2011/01/31/jquery-textbox-in-sortable-is-not-clickable-selectable.aspx 我仔细查看了 jquery-sortable 提供的取消选项。

      我终于可以这样解决了:

      <ul id="sortable">
          <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span><input type="text" value="text" ></input></li>
          <li class="ui-state-default" style="height: 70px;"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span><textarea cols="20" rows="3">textarea</textarea></li>
          <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span><button>button</button></li>
      </ul>
      <script>
              // initialize the sortable including the cancel option
              $( "#sortable" ).sortable({cancel: 'input,button,textarea'});
      </script>
      

      【讨论】:

      • 非常感谢 Guntram 的回答!你实际上给了我一个很好的提示,我也有另一个问题;)
      【解决方案3】:

      我也有同样的问题。经过一天的测试,我发现了问题所在以及导致这种行为的原因。

      让我首先向您展示我们使用可排序类的内容。

      -----------
      | Header  |
      -----------
      |         |
      |Contents |
      -----------
      

      标题是可拖动的。如果您在拖动时快速不规律地移动鼠标光标,并且鼠标光标以某种方式从标题上移开(例如移到内容上),则 div 粘住 到光标处。

      要将 div 重新固定到页面上,您可以再次快速移动光标并尝试将其重新放在页眉上。然后似乎重新附加了事件,您可以将 div 放回页面上。

      总而言之,鼠标移出带有可排序事件的 div,因此对象看不到将对象放回页面上的 mouseup 或 click 事件。

      很遗憾,我不知道如何解决这个问题。

      编辑

      我们实施了一个适合我们的解决方案,但可能并不适合所有人。当在任何不应拖动的元素上发生单击事件时,只需在可拖动元素上 .trigger("mouseup") 即可。这会将可拖动元素重新吸附到页面上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-21
        • 2016-10-25
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多