gpt4 book ai didi

jquery - 使用 jQuery 可拖动和可调整大小与 jquery 碰撞 1.0.1 的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 04:23:25 24 4
gpt4 key购买 nike

我正在使用:

jquery-1.6.2jquery-ui-1.8.16碰撞1.0.1

...构建基于 Web 的 block 绘画应用程序。我有一个表格网格,其中有可选择的单元格。该层之上是“帐篷”。当选取框移动或调整大小时,我希望下表中的重叠单元格应用特殊类,因此我开始使用碰撞 1.0.1。

它似乎完全具有所需的效果,但是当您拖动选取框然后调整其大小时 - 下面的单元格不再反射(reflect)来自上方选取框的碰撞,直到您再次拖动选取框。如果您创建一个新的选取框并仅调整其大小,则碰撞会被准确计算,只有在拖动后才会出错。

http://accessibledesign.net/block_painter/client/ 有一个演示(只需在屏幕上拖动选取框即可)

黄色单元格反射(reflect)与上方选框的碰撞。

我已经进行了广泛的测试,并且可以确认可调整大小的选取框本身具有所有正确的属性,故障似乎在于碰撞功能:

$("#grid td.ui-selected").removeClass("ui-selected");
hits = DATA.elems.curMarquee.collision($("#grid td.col"))
hits.addClass("ui-selected");

此代码在可调整大小或可拖动的“停止”时运行 - 并在正确的时间触发。

最佳答案

实际上,这是 jquery-ui-draggable-collision 模块中的一个错误。或者更具体地说,它还没有被设计来处理“可调整大小”——这将在未来的版本中实现。如果您不需要可拖动碰撞的东西,删除它应该可以解决问题。

但是,如果您确实需要它,现在有一个解决方法。在调用 $("#target").collision(".obstacles") 之前,执行以下操作:

$("#target").removeData("jqueryCollisionCoordinates")
$("#target").removeData("jqueryUiDraggableCollisionRecentPosition")
$(".obstacles").removeData("jqueryCollisionCoordinates")
$(".obstacles").removeData("jqueryUiDraggableCollisionRecentPosition")

这将删除它所做的所有内部缓存,以便它从头开始重新计算碰撞,而不是使用尚未更新的先前版本。

Note: If you can file a bug fix ticket on the sourceforge page, too, please, and link to this page, I'll eventually patch it to work properly, and you'll get a message when I do. You're welcome to add your website to a review there as well, and I'll try to keep posted users' usage in mind when I make changes. Thanks!

Also note: maybe it shouldn't need to be said, but don't depend on this working after version 1.0.1. Also don't futz with the contents of those internals, or it might break in future versions - it's not a public API.

关于jquery - 使用 jQuery 可拖动和可调整大小与 jquery 碰撞 1.0.1 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com