我有两个连接的可排序列表:list_b
和list_a
。我想要完成的是只允许在list_b
中出现可见占位符。list_a
只用于从list_a
中提取占位符,所以我不希望占位符在list_a
中被拖动(至少是占用空间的可见占位符),但我希望list_b
在从list_a
中拖动占位符时显示占位符。
基本上:
list_a
项到list_b
=在list_b
中显示占位符
list_b
项到list_b
=在list_b
中显示占位符
list_a
item to list_a
=不显示占位符,或使用样式显示的占位符:none;在list_a
中
list_b
item to list_a
=不显示占位符,或使用样式显示的占位符:none;在list_a
中
jQuery:
$( "#list_a, #list_b" ).sortable({
connectWith: ".connected_sortable",
start: function (e, ui) {
//Closest I can get but now both lists don't show placeholders.
if(ui.item.context.parentNode.id != 'destination_list')
ui.placeholder.hide();
},
}).disableSelection();
HTML:
<ul id="list_a" class="connected_sortable">
<li value="0">test text</li>
<li value="1">test text</li>
</ul>
<ul id="list_b" class="connected_sortable">
<li value="2">test text</li>
</ul>
除了将jQuery拖放插件与可排序插件组合之外,还有什么方法可以这样做吗?我不想这样做,因为我在一起使用这两个插件时遇到了一些jQuery错误。
发布于 2011-10-07 07:21:08
js Fiddle example for my answer
您可以让list_a连接到list_b,但不能将list_b连接到list_a。这样,将list_b项拖到list_a是不可能的。示例:
$( "#list_a" ).sortable({
connectWith: "#list_b"
});
$( "#list_b" ).sortable({
placeholder: "placeholder"
});
$( "#list_a, #list_b" ).disableSelection();
但是,如果您只想隐藏占位符,那么您可以使用css完成此操作:
#list_a .placeholder {display:none}
https://stackoverflow.com/questions/7642512
复制相似问题