1

我有一个带有项目网格的页面。这些项目中的每一个都可以拖到四个 div 之一并添加到该 div。这是使用 jQuery 和 JQuery UI 可拖放/可拖放完成的。

第一个同位素项目可以拖到任何 div 上。但是,第 2 和第 3 个同位素项目不识别第一个可放置的 div,但当拖到第 2 个可放置的 div 上时,将添加到第一个可放置的 div。

第 4 和第 5 个可拖动项目(同位素)无法识别第一个或第二个可放置 div,但当拖动到第 3 个可放置项上时,会添加到第 2 个可放置项。

所以不知何故,droppable 对物品被丢弃的位置感到困惑。

当我注释掉以下代码时,拖放工作正常。关于为什么此代码会影响可放置区域的任何想法?

jQuery('div.container').isotope({
 itemSelector: 'div.sub-item',
 调整大小容器:假,
 layoutMode : 'fitColumns',
 获取排序数据:{
   fitOrder : 函数 ($item){
    var 顺序,
       索引 = $item.index();
       if($item.hasClass('sub-item-big') && index % 2) {
            订单=指数+1.5;
            } 别的 {
            订单=索引;
            }
        退货单;
       }
   },
 sortBy : 'fitOrder'
});

- - - - - - - - 更新 - - - - - - - - -

在玩了一些之后,我决定在开始拖动时添加“破坏”同位素。

  jQuery('div.sub-item').draggable({
         助手:函数(){
                jQuery('div.container').isotope('destroy');
                return jQuery(this).clone().appendTo('body');
          }
    })

当我以这种方式运行它时,项目将被放入正确的容器中。

同位素文档说它们是“删除”功能,这有两个问题。

1)文档说它删除了“从同位素小部件和 DOM 中指定的项目元素”,但我不想从小部件或 dom 中删除该项目,我只想删除同位素功能

2) 我收到一个错误“无法在初始化之前调用同位素上的方法,试图调用方法删除” - 但在这种情况下,同位素已初始化,但可能不在被克隆的对象上?这超出了我的能力,虽然我希望学习。

现在我找到了一种纠正这个错误的方法,我可以在拖动时破坏同位素,然后在拖动完成后重新初始化同位素,或者放开物品,但这似乎效率低下。

4

0 回答 0