我正在尝试为移动网站制作一个jquery切换菜单。
我设法创建了一个切换菜单,其中包含+和 - 切换时以及
时当前版本:http://jsfiddle.net/9Dvrr/7/
现在我正在尝试创建一个显示“>”的if else语句没有孩子的时候。
实验:http://jsfiddle.net/9Dvrr/6/
问题在于,我似乎可以解决这个问题。
提前致谢,
瑞克
答案 0 :(得分:0)
检查长度属性是否有子级时,需要检查长度属性。否则,您正在检查的是结果是否为非null ...并且即使选择器不匹配也始终为非null,因为它将返回jQuery。它将是空的任何元素,但仍然是一个对象,因此非空。
if (element.has('ul').children('a').length > 0) {
element.prepend("<span>+ </span>");
答案 1 :(得分:0)
下面这段代码会做你想要的,但它绝对可以使用一点重构。主要是向您展示如何实现它:
$('#menu-mobiel ul').hide();
$.each($('#menu-mobiel li'), function(i, value) {
var $this = $(this);
if($this.find('ul a').length > 0) {
$this.find('a').append("<span>+ </span>")
.addClass('plus')
.click(function() {
togglePlus($(this));
$(this).next('.sub-menu').slideToggle('normal');
});
}
else
{
$this.find('a').append("<span>> </span>");
}
})
function togglePlus(element) {
element = $(element);
if (element.hasClass('plus')) {
element.removeClass('plus').addClass('minus');
element.children('span').text('- ');
} else {
element.removeClass('minus').addClass('plus');
element.children('span').text('+ ');
}
}