jquery - 可能的递归问题,事件冲突 : Can't set . droppable() 和 .draggable() 到同一个选择器,

标签 jquery

所以我发现当我将 .draggable().droppable() 添加到元素时。 (在本例中为图像)它不起作用。 .droppable().over: 代码永远不会触发。

这可能是由于我用来移动图像的一些递归,但我不明白为什么它会破坏。

我已经找到了问题所在,并将问题域拆分为 .jsFiddle

我认为设置 .droppable() 代码时发生了某种事件冲突。它可以通过注释掉顶部 .droppable()

中的“over”事件来“修复”

好吧,我需要那个“结束”事件来完成一些工作,因此,我的问题。

在 fiddle 的代码中,您可以在一些国际象棋方格上看到 2 个棋子。将一个 pawn 悬停在另一个 pawn 上应该会弹出一个警报,但只有当您注释掉顶部(点)可放置的“over”事件时才有效:

http://jsfiddle.net/KevinGabbert/jBQby/60/

成功意味着您拿起一个棋子,并将其悬停在另一个棋子上。将会弹出一个警报,告诉您悬停在上面的 pawn 的 ID。 (我已经有了解决方法,但我需要知道为什么“over”事件不起作用,以及如何构建我的代码以使其起作用)

我不是在寻找解决方法。我正在寻找使“over”代码起作用的答案

最佳答案

问题出在你的选择器上。您应该使用

board.AddDragAndDrop(".piece", ".thing")
当您使部件可放置时,它接受“ui-droppable”类,当您创建可放置的位置时,它实际上与部件匹配,因为它们已经具有“ui-droppable”类。顶部的警报正在起作用,因为您正在覆盖碎片上的“可掉落”。希望这对我有帮助,对我的英语不好表示歉意;)

编辑: 当你打电话时

_newPiece.AddPieceEvents(dragSelector);

jQueryUI 在所有部分上添加类 ui-droppable ,然后调用

_newSpot.AddSpotEvents(dropSelector);

这些部件已经具有类 ui-droppable 并且您正在再次初始化它们的 droppable

关于jquery - 可能的递归问题,事件冲突 : Can't set . droppable() 和 .draggable() 到同一个选择器,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9757112/

相关文章:

jquery - 尝试为 .css() 向 Jquery 添加更多属性

jquery - 为什么 JQuery height() 函数返回零?

jQuery slideToggle 动画移动其他元素

javascript - jQuery 在 anchor 后插入按钮

javascript - jQuery 中的并行 JSONP 请求不会触发多个 "callback events"?

javascript - 元素 ID 作为函数中的变量

javascript - 无法在ajax的帮助下使用选择选项更新数量

jquery - 设置 jQuery JQGrid 宽度和高度的最佳解决方案是什么?

javascript - 如何将用户脚本 js 文件添加为 Chrome 扩展?

javascript - AngularJs ng-repeat 中的 Iframe 加载事件