Jquery UI可拖动和可拖放-作用域

Jquery UI可拖动和可拖放-作用域,jquery,html,jquery-ui,drag-and-drop,jquery-draggable,Jquery,Html,Jquery Ui,Drag And Drop,Jquery Draggable,通过阅读几个简单的问题,似乎我的问题可能是一个DOM元素不能有多个JQuery UI Dropable作用域。我想知道是否有人可以证实这一点,或者建议一个解决办法 例如,我有两个拖拽表,我想把它们放在一个列表中: <ol> <li>one </li> <li>two </li> <li>three </li> <li>four </li> </ol

通过阅读几个简单的问题,似乎我的问题可能是一个DOM元素不能有多个JQuery UI Dropable作用域。我想知道是否有人可以证实这一点,或者建议一个解决办法

例如,我有两个拖拽表,我想把它们放在一个列表中:

<ol>
  <li>one
  </li>
  <li>two
  </li> 
  <li>three
  </li>
  <li>four
  </li> 
</ol>

<div id="drag">drag me1
</div>
<div id="drag2">drag me2
</div>
但只有
drag1
可以移动到列表中,从而触发第二个警报

似乎使用范围只会导致拖放之间的冲突,并不像我预期的那样工作。。。如果它不是这样工作的,
scope
参数的用途是什么

这里有一把我的例子可以玩;非常感谢您的帮助:

基本上,您只能轻松地拥有一个范围。但是,droppable的drop方法允许您通过传入两个属性(事件和ui)来访问正在拖动的元素

因此,如果您仅使用一个drop函数并将其更改为:

$('ol li').droppable({drop: function(event, ui){ alert($(ui.draggable).prop('id'));}})
您可以看到任何被丢弃的draggable都有其id警报。然后,您几乎可以通过在每个可拖动元素上放置数据道具或任何东西,并通过以下方式访问它们来执行任何需要执行的操作:

$(ui.draggable)._jquery-method_();

感谢您的回复,我明白您的观点,并以类似的方式使用了drop事件。虽然附加两个不同范围的放置区域会很有用,以便允许附加不同的
activeClass
hoverClass
属性。这是有解决办法的,但这只会让事情变得更加困难。如果这是不可能的,那么就足够公平了。。。我仍然想知道
scope
的真正目的是什么。@基本上,我认为scope的目的是防止没有可拖放范围的可拖放对象被拖放到它上面。例如,假设你有一个25美分的硬币,一个5美分的硬币,一张一美元的钞票,还有一个投币口,它是一个可放下的。您可以将硬币和投币口的范围设置为“硬币”,将美元钞票设置为“纸张”。这样硬币就可以扔到投币口上,但是如果你试图扔美元,那是不可能的,因为示波器不匹配。事实上,不为美元设定范围也会起到同样的作用。相关:
$(ui.draggable)._jquery-method_();