[英]Javascript if else problems mobile Jquery toggle menu
我正在尝试为移动网站制作一个jquery切换菜单。
我设法用+和-创建切换菜单
当前版本 : http : //jsfiddle.net/9Dvrr/7/
现在,我试图创建一个if else语句,以便在没有子级时显示一个“>”。
实验 : http : //jsfiddle.net/9Dvrr/6/
问题是我似乎可以弄清楚..
提前致谢,
里克
检查它是否有子级时,需要检查length属性。 否则,您要检查的是结果是否为非null ...并且即使选择器不匹配,结果也始终为非null,因为它将返回jQuery。 它将没有任何元素,但是将是一个对象,因此为非null。
if (element.has('ul').children('a').length > 0) {
element.prepend("<span>+ </span>");
下面的代码将执行您想要的操作,但是肯定可以使用一些重构。 主要是为了向您展示如何轻松实现它:
$('#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('+ ');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.