繁体   English   中英

jQuery:切换触发切换链接

[英]JQuery: toggle triggering toggle link

我有一个下拉菜单,该菜单使用切换,并在单击+字符(带有.plusminus类的元素)时触发。 触发切换后,+符号也切换为“ display:none”,而-(减号)符号切换为显示。

问题是单击负号将不会触发下拉菜单再次切换-仅在显示+号时有效。

有人知道我做错了吗?

谢谢

$('#menu li:has(ul)').each(function() {   
    $(this).append( "<span class='submenuplus plusminus'> &#43; </span>" );
    $(this).append( "<span class='submenuminus plusminus'> &#45; </span>" );   
});

$('#menu').on('click','.plusminus',function() {
    $(this).prev("ul").slideToggle("slow"),
    $('.submenuminus, .submenuplus').toggle();
});

我为您整理了click事件。 试试下面的东西

$('#menu li:has(ul)').each(function() {   
    $(this).append( "<span class='submenuplus plusminus'> &#43; </span>" );
    $(this).append("<span class='submenuminus plusminus'> &#45; </span>");
    $(this).find('.submenuminus').hide();    
});

$('#menu .plusminus').click(function(){
    $(this).prevAll("ul").slideToggle("slow"),
    $(this).parent().find('.plusminus').toggle();
});​

使您绊倒的一个问题是使用

$(this).prev("ul")

这将返回+号而不是-符号的嵌套<ul> ,因为.prev([selector])仅查找与选择器匹配的直接同级。 <ul> 不是 -符号的<span>直接兄弟(带+符号的<span>位于两者之间) ,因此您必须改用.prevAll([selector])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM