【问题标题】:jQuery, drop image on overlaping targetjQuery,将图像放在重叠的目标上
【发布时间】:2010-03-22 11:42:04
【问题描述】:

我正在使用 jQuery 来检测目标上的下降,有问题的目标是图像。如果我将一个图像拖放到另一个图像上,然后将其拖放,它将用拖放的源替换目标源。这工作正常,直到两个图像相互重叠。

一些图像彼此相邻,有时目标图像重叠。如果我放下,可见图像和下方的图像都将替换为拖动的图像。

$("#drag img").draggable({
  drag: function(event) { //somethings }
});

$("#target img").droppable({
  accept: '#drag img',
  drop: function() {//change src }
});

一个直播exampel

我希望问题很清楚,他们是任何好的解决方案。

【问题讨论】:

    标签: jquery image jquery-ui drag-and-drop overlap


    【解决方案1】:

    使用stopImmediatePropagation 防止事件处理程序在下一张图像上被调用。受影响的图像应由事件处理程序的顺序确定。如果您需要它仅应用于顶部图像,请确保任何与另一个图像重叠的图像都首先应用它的处理程序。

    【讨论】:

    • 谢谢,现在我知道要找什么了,遗憾的是我是新手,所以我不知道如何确保首先应用它的处理程序。你能指出我正确的方向吗
    • @Cinaird -- 不知道项目是如何放置在页面上的,以及如何让它们重叠。它可以像将一个类应用于顶部的图像一样简单,然后首先将处理程序应用于具有该类的图像,然后再应用于那些没有它的图像。
    • 我在这里有一个活生生的例子web.cinaird.se/pdf/test.htm,我在每张图片上都有相同的类,有没有办法知道哪个图片是可见的?
    • 尝试 $('#Content #placeholder_1 img').add(('#Content #placeholder_0 img').droppable( ... ) 在放置处理程序中使用 stopImmediatePropagation 调用。您可能需要检查是否在事件上设置了 isImmediatePropagationStopped,如果是,请先手动停止。
    • 好的,我没有得到解决方案,但我设法针对我的问题更具体地解决它。不太好,但它有效,我使用下划线 div 来检测下降。感谢所有的帮助,我会在 jquery 上做得更好吗?我相信它会解决我的问题
    【解决方案2】:

    我设法针对我的问题更具体地解决它。不太好,但它有效,我使用下划线 div 来检测这样的下降:

    $("#target").droppable({
      accept: '#drag img',
      drop: function() {//change src of image in this div }
    });
    

    我认为这对任何人都没有帮助,但请@tvanfosson 回复其他解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多