【发布时间】:2016-11-02 03:15:03
【问题描述】:
我是新手,所以请多多包涵..
我尝试了不同的解决方案,但我没有让我需要的东西正常工作。我的数据列表是使用此代码从 JSON 文件中读取的
function showInsatserList() {
var promise = [];
promise = getSelectedSubareaInsatslist();
promise.done(function (insatserlist) {
$('#dropdownmenu li').remove();
for (var i in insatserlist) {
$('#dropdownmenu').append('<li class="dropdown-submenu"><a href="#">' + insatserlist[i].title + '</a> '
+ '<ul class="dropdown-menu"><li>HEJ</li></ul></li>');
}
});
}
然后我用这个来展示它..
$('.insatsDropdown').on('click', function (e) {
showInsatserList();
});
现在我的 html 看起来像这样......
<div class="dropdown insatsDropdown">
<a href="#" class="btn dropdown-toggle" data-toggle="dropdown">Välj insatser <span class="caret"></span></a>
<ul id="dropdownmenu" class="dropdown-menu"></ul>
</div>
我想要做的是,当我从下拉菜单中单击任何 li 时,它只会显示底层子菜单,该子菜单目前仅填充了瑞典语“HEJ”中的随机词。
我尝试了标准的点击方法,但唯一适用于动态内容的方法似乎是使用下面的这行代码..
$(document).on('click', '.dropdown-submenu', function (e) {
$(this).find('ul').toggle(); //not working
});
问题是..我在里面所做的并没有真正切换任何东西
我的小提琴在这里:
https://jsfiddle.net/MissKalani/yvrL24Lv/9/
我现在想做的是.. 例如.. 我点击其中一个 .. 比如“沃尔沃”.. 它会显示底层的 ul 元素。
我也对不同的方法持开放态度。我也尝试在单击时添加 ul 元素,但这对我来说也不起作用。
【问题讨论】:
-
你读过
.next()doco吗?它只选择siblings,并且ul不是被点击的li的兄弟,它是一个child。浏览the list of jQuery traversal methods,我相信你会发现你应该使用的方法...... -
你能设置一个小提琴吗?那会帮助我们。我想你应该看看 jquery
.first()函数。 -
我已经设置了一个小提琴 .. 以某种类似的方式除了 jsondata .. 但现在我似乎也无法让它在那里正常工作:( 抱歉 jsfiddle.net/MissKalani/y959b6jd
标签: javascript jquery css twitter-bootstrap html-lists