我試圖建立一個使用嵌套的UL和jqueryUI可選的兩級多選控件。jqueryui可選嵌套列表 - 選擇/取消選擇父母應選擇/取消選擇所有它的孩子
目前,我將選擇限制在兒童級別,但我真正想要的是能夠選擇父母LI並將其全部選中爲兒童LI。更進一步,我希望能夠選擇所有Child LI,並選擇其Parent。任何小於選擇的所有Child LI都會導致Parent未被選中。
基本標記:
<ul id="theParentList">
<li>Parent 1
<ul>
<li>Child 1.1</li>
<li>Child 1.2</li>
</ul>
</li>
<li>Parent 2
<ul>
<li>Child 2.1</li>
<li>Child 2.2</li>
</ul>
</li>
</ul>
和當前的javascript:
$('#theParentList').selectable({filter: 'li li'});
我將如何完成第一部分:選擇一個家長選擇它的所有的孩子?
謝謝!
UPDATE:
我知道了大多數這個概念現在的工作:
選擇家長選擇它的所有兒童;
取消選擇一個孩子會取消它的父
還有什麼不工作:選擇所有父母的兒童應選擇父
這裏就是我有,在這一點上:
標記:
<ul id="theParentList">
<li class="level-1">
<div>Parent 1</div>
<ul class="level-2">
<li><div>Child 1.1</div></li>
<li><div>Child 1.2</div></li>
</ul>
</li>
<li class="level-1"><div>Parent 2</div>
<ul class="level-2">
<li><div>Child 2.1</div></li>
<li><div>Child 2.2</div></li>
</ul>
</li>
</ul>
和JS:
function SelectSelectableElement (selectableContainer, elementsToSelect){
$(elementsToSelect).not(".ui-selected").addClass("ui-selecting");
}
function handleSelected(){};
function handleSelection (El){
if($(El).parent().hasClass('level-1')){
var ch = $(El).parent().find('.level-2 .ui-selectee');
SelectSelectableElement('#theParentList', ch);
}else{
//this is a level-2 item
//if El and all of it's level-2 siblings are selected, then also select their level-1 parent
}
};
function handleUnselected (El){
if($(El).parent().hasClass('level-1')){
//unselect all of it's children
$(El).parent().children().each(function(){
$(this).find('.ui-selectee').removeClass('ui-selected').addClass('ui-unselected');
});
}else{
//this is a level-2 item, so we need to deselect its level-1 parent
$(El).parents('li.level-1').find(">:first-child").removeClass('ui-selected');
}
};
$('#theParentList').selectable({
filter: 'li div',
selecting: function(event, ui){
handleSelection(ui.selecting);
},
selected: function(event, ui) {
handleSelected(ui.selected);
},
unselected: function(event, ui) {
handleUnselected(ui.unselected);
}
});
這裏有一個小提琴:http://jsfiddle.net/JUvTD/
不錯@rocketegg!但我不明白這種行爲有什麼不同。它是依賴於上下文/層次而不是類嗎? – rolfsf