Jquery UI可拖动和可拖放-作用域
通过阅读几个简单的问题,似乎我的问题可能是一个DOM元素不能有多个JQuery UI Dropable作用域。我想知道是否有人可以证实这一点,或者建议一个解决办法 例如,我有两个拖拽表,我想把它们放在一个列表中: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
<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_();