【问题标题】:Stop jquery droppable from accepting when droptarget is completely obscured by another element当 droptarget 完全被另一个元素遮挡时,停止 jquery droppable 接受
【发布时间】:2012-09-05 11:30:09
【问题描述】:

在我的用户界面中,我有许多弹出对话框,其中一些包含 jquery 可放置目标。它们工作正常,但是当一个弹出窗口完全覆盖放置目标时,我想阻止事件传播。

我试图在弹出对话框上放置一个事件处理程序来阻止 drop 事件传播,但这没有用。

使用范围和接受选项似乎并不可行,因为对象和目标或多或少相同。

有什么想法吗?

【问题讨论】:

  • 请给我们一些代码
  • 我会看看我能做些什么来把它提炼成最小的情况。它基本上只是一些带有可拖放的图像标签,其他带有可拖动的图像标签,以及具有高 z-index 并隐藏可放置对象的 div。有机会我会发布一些实际代码。

标签: jquery jquery-ui jquery-droppable


【解决方案1】:

最简单的方法可能是在打开对话框时对被遮挡的 dropable 使用 disable 方法。然后在对话框关闭事件中调用enable 方法。禁用所有不在最近打开的对话框中的 droppable 也可能有意义。

不幸的是,将 greedy 选项设置为 true 只会停止嵌套 dropable 的传播,因此这也不是您的选择。

【讨论】:

  • 其实我已经考虑过了。这样做的问题是,如果它们没有被对话框遮挡,无论对话框是否打开,它都需要工作。对我来说,绊脚石是检测它们何时被覆盖并相应地禁用/重新启用它们。充其量看起来很笨重。
  • 谢谢,我想你回答了我的隐含问题。碰撞检测是我知道该怎么做的事情,它似乎只是在一个设定的时间间隔内连续做它是次优的。
  • @Tim 好吧,您不必连续执行此操作,仅当对话框打开或移动时。所以只需在opendragStop 事件对话期间进行检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多