如果list在init之前为空,则jQuery sortable与水平列表无法正常工作
如果我在初始化之后将元素添加到列表.sortable
它无法正常工作。
参见示例jsFiddle
示例HTML:
示例JS:
$(".container").sortable({ containment: 'parent' }); $(".container").disableSelection(); $(".add-fields").click(function(){ $(".container").append("sucke") })
CSS示例:
.container { height: 30px; width: 100%; background: blue; position: relative; float: left; } .container > div { position: relative; float: left; height: 100%; width: 80px; background-color: red; line-height: 30px; text-align: center; margin: 0; padding: 0; cursor: default; }
UPDATE
我在http://bugs.jqueryui.com/ticket/7498找到了相关问题
因为this.floating仅在_create中确定,如果从空的sortable开始,则假定它是垂直的。
该jQueryUI错误的解决方法是使用内部元素初始化sortable,然后在初始化后立即将其删除。
HTML:
blah
使用Javascript:
var i = 0; $(".container").sortable({ containment: 'parent' }); $(".container").disableSelection(); $("#test").remove(); $(".add-fields").click(function(){ $(".container").append("sucke" + (i++) + "") })
并且一个jsFiddle显示它正在工作。
它对我来说很好..尝试类别div的唯一名称…
$(".container").sortable({ containment: 'parent' }); $(".container").disableSelection(); $(".add-fields").click(function(){ $(".container").append("sucke"+Math.round(Math.random()* 100)+"") })
更新..我的坏。 在上面的例子中,我确实在容器中有一个元素。 当我从空开始时,你是对的,div不分类。 道歉…