我有一个ul列表,如果我点击其他项目中的项目,则会切换:
public class ForumNamesAutocomplete extends AutoCompleteTextField {
ListModel<String>myModel = new ListModel<String>();
...
@Override
protected boolean filter(String text) {
if(text.length() > 1){
return false;
}
setSuggestionList(text);
return true;
}
private void setSuggestionList(String s){
if(myModel == null){
myModel = new ListModel<String>();
}else{
while(myModel.getSize() > 0)
myModel.removeItem(0);
}
for(int i = 0;i<fData.size();i++){
boolean used = false;
Map<String,Object> forumMap = fData.get(i);
if(((String)forumMap.get(KEY_FORUM_NAME)).indexOf(s) != -1){
myModel.addItem((String)forumMap.get(KEY_FORUM_NAME));
used = true;
}
if(!used && ((String)forumMap.get(KEY_FORUM_DESC)).indexOf(s) != -1){
myModel.addItem((String)forumMap.get(KEY_FORUM_NAME));
}
}
}
...
}
这是剧本:
<ul>
<li><a href "#">Hello World</a>
<ul>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
<ul>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
</li>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
我希望在页面加载时关闭所有“文件夹”。
我试着这样做:
$('li a').click(function (e) {
e.preventDefault();
var ullist = $(this).parent().children('ul:first');
ullist.slideToggle();
});
但是只关闭了主“文件夹”,当我点击它时,所有其他文件夹都打开了。
答案 0 :(得分:1)
要折叠所有列表,您可以在文档就绪时使用$('ul ul').hide()
:
答案 1 :(得分:0)
我有结果!需要将var ullist = $('li a').parent().children('ul:first');
更改为var ullist = $('li a').parent().children('ul');