2

我从这里的拖放示例开始。

它很好用,但是当我尝试将放置区域放置在选项卡(此处)中时,它似乎中断了。当我尝试将项目放在“可排序 2”选项卡上时,它停止工作。

希望这是有道理的。

HTML 如下所示:

<ul>
  <li id="draggable" class="ui-state-highlight">Drag me down</li>
</ul>

<div id="tabs">
  <ul>
      <li><a href="#tabs-1">Sortable 1</a></li>
      <li><a href="#tabs-2">Sortable 2</a></li>
  </ul>

  <div id="tabs-1"> 
    <div class="ui-state-default">Item 13</div>
    <div class="ui-state-default">Item 23</div>
    <div class="ui-state-default">Item 3</div>
    <div class="ui-state-default">Item 4</div>
  </div>
  <div id="tabs-2">  
    <div class="ui-state-default">Item 1</div>
    <div class="ui-state-default">Item 2</div>
    <div class="ui-state-default">Item 3</div>
    <div class="ui-state-default">Item 4</div>
  </div>  
</div>

和 JavaScript:

$("#tabs").tabs();

$("#tabs-1, #tabs-2").sortable({
  revert: true
});
$("#draggable").draggable({
  connectToSortable: '#tabs-1, #tabs-2',
  helper: 'clone',
  revert: 'invalid'
});
$("ul, li").disableSelection();
4

1 回答 1

2

看起来 jQuery 1.4 和/或 jQuery-UI 1.8 有问题。如果你玩这个:

http://jsfiddle.net/ambiguous/jjmVt/

它使用 jQuery 1.4.4 和 UI 1.8.7,您会看到与您看到的相同的奇怪行为(即,您必须在切换选项卡后与 sortable 交互,然后才能再次拖放)。但是如果你切换到 jQuery 1.7.1 和 UI 1.8.16:

http://jsfiddle.net/ambiguous/NRZ2U/

一切似乎都很好。所以升级你的方法来解决这个问题。

我还将 draggable 切换为 a<div>以避免产生无效的 HTML,但这不会影响奇怪的行为。我还将您的替换id="draggable"class="draggable"再次避免无效的 HTML,但这也不会影响错误行为。

于 2012-01-11T11:23:33.757 回答