【发布时间】:2014-04-01 06:32:36
【问题描述】:
所以我到了在网上找不到任何关于如何解决这个问题的地步。我正在使用这样的 jQuery 可排序函数:
<div class="sortable">
<div class="item" id="1"></div>
<div class="item" id="2"></div>
</div>
<div class="sortable">
<div class="item" id="3"></div>
<div class="item" id="4"></div>
<div class="item" id="5"></div>
</div>
现在,当项目被拖动到两个可排序 div 之间时,我想要得到另一个“可排序”-div。它们之间有 10 像素的边距,我认为必须用 10 像素宽度的 div 替换,所以我尝试了..
我在中间创建了一个 div,也可以排序,但宽度为 10px 边距。这件事不起作用,只是因为当一个项目被拖进来时,它们之间不再有 div 了,它只能做一次。
这是一个小提琴: http://jsfiddle.net/p5Z3s/5/
谁能指出我正确的方向?我不需要代码,只需有人指出我从哪里开始以及如何解决这个问题。
示例:
当像这样拖动项目时:
应该把它放在中间,像这样:
更新 1:
我只是尝试使用新的可排序 div 创建间距,请查看小提琴: http://jsfiddle.net/p5Z3s/6/
但是,现在的问题是,没有调用更新函数,这是保存位置所必需的。此外,一旦我将它拖到两列之间,我就会再次添加所需的间距:
$(this).before( "<div class=\"dropable gallery__item sortable\"></div>" );
$(this).after( "<div class=\"dropable gallery__item sortable\"></div>" );
它们已成功创建,但无法再在其中拖动项目。
我尝试使用以下方法更新和刷新它们:
$( ".sortable" ).sortable('refresh').trigger('update');
但它失败并出现此错误:
错误:无法在初始化之前调用可排序的方法;试图调用方法“刷新”
更新 2:
问题
$( ".sortable" ).sortable('refresh').trigger('update');
解决了。现在唯一不起作用的是:
$(this).before( "<div class=\"dropable gallery__item sortable\"></div>" );
$(this).after( "<div class=\"dropable gallery__item sortable\"></div>" );
已创建 div,但不允许在其中放置可排序的项目。
【问题讨论】:
-
重现问题的步骤是什么? (在你的小提琴中)
-
@Trevor 正如您在我的问题中所读到的那样,我正在寻找一种解决方案,以在将项目拖动到两者之间时在两者之间动态添加“可排序”类 div。
-
你能在示例小提琴中告诉我,你想把裤子拖到哪里使新的可排序吗?
-
@IrvinDomininakaEdward 在衬衫和上衣之间!
-
@IrvinDomininakaEdward 我添加了一些示例图片
标签: jquery jquery-ui jquery-ui-sortable