我想为移动设备和触摸设备创建响应式菜单,例如Bootstrap菜单 我在Jsfiddle
上写了这段代码如何将父母与子女分开?
或如何将菜单项与子菜单分开?
像:
##Internet
-submenu
...
在我的选择框中。
答案 0 :(得分:1)
添加如下变量:
var prefix = $(this).closest('ul').hasClass("sub-menu") ? "- " : "";
然后将其附加到您的代码中:
$('#RESPONSIVE-MENU').append($("<option></option>").attr("value", $(this).attr('href')).text(
prefix +
$(this).html()
)); });
更新:
动态(和更好)的方法可以是这个:
var prefix = "",
x = $(this).parents('ul').length;
for (i = 0; i < x; i++) prefix = prefix + "-";
答案 1 :(得分:1)
我找到了全面的方式来得到我的答案......
pumpkinzzz和...谢谢!
$('<select/>', {id: 'RESPONSIVE-MENU'}).appendTo('.navmen-topmenu-container');
var options = '<option selected>Go to...</option>';
$('.navmen-topmenu-container').find('a').each(function () {
var text = $(this).text(),
depth = $(this).parent().parents('ul').length,
depthChar = '',
i = 1;
for (i; i < depth; i++) { depthChar += '– '; }
options += '<option>' + depthChar + text + '</option>';
});
$('#RESPONSIVE-MENU').append(options).appendTo('.navmen-topmenu-container');
$('#RESPONSIVE-MENU').change(function(){if($(this).val() !=''){window.location.href=$(this).val();event.preventDefault();}});
答案 2 :(得分:1)
$('.navmen-topmenu-container').append('<select id="RESPONSIVE-MENU"><option value="">Nav Menu</option></select>');
$('#navmen-topmenu li a').each(function(){
if($(this).closest('ul').hasClass('sub-menu')) {
$('#RESPONSIVE-MENU').append('<option value="' + $(this).attr('href') + '"> - ' + $(this).text() + '</option>');
} else {
$('#RESPONSIVE-MENU').append('<option value="' + $(this).attr('href') + '">##' + $(this).text().toUpperCase() + '</option>');
}
});
$('#RESPONSIVE-MENU').change(function(){
if($(this).val() !=''){
window.location.href=$(this).val();event.preventDefault();
}
});