4

我无法解决以下问题:

以下代码适用于所有mac浏览器以及 windows,除了它 部分适用于 macs safari(5.1.5)

注意:它适用于 windows safari(5.1.5)。

这是基本结构

在此处输入图像描述

$(".div2" ).droppable({
        accept: '.div1',
        tolerance: 'touch',
        drop: function(){ 
                        alert('dropped');
        }   
});

所以,基本上当div1接触到div2时,应该触发 drop 事件。

在此处输入图像描述

但上述情况并不会触发 drop 事件。

在 macs safari 中触发 drop 事件的唯一情况(如下所示)是当可拖动的 div div1完全通过可放置的 div div2时。我只是不知道为什么?

在此处输入图像描述

使用的版本:

jQuery: 1.7.2
jQuery UI: 1.8.18
Safari(mac): 5.1.5

更新:

我尝试了其他宽容的选择。' touch ' 和 ' intersect ' 都不能按预期工作。但是'指针'工作得很好。

有没有其他方法可以实现“tolerance:touch”的功能?我正在考虑检测 2 个 div 之间的碰撞,然后应用相应的逻辑。

任何帮助将不胜感激。

谢谢!

4

1 回答 1

0

尝试添加position: absolute !important;到元素。这就是我找到的解决这个问题的方法。否则,您可以尝试为可拖动/可放置 div 创建父 div。

于 2012-05-31T07:10:18.543 回答