[英]JQuery: toggle triggering toggle link
我有一个下拉菜单,该菜单使用切换,并在单击+字符(带有.plusminus类的元素)时触发。 触发切换后,+符号也切换为“ display:none”,而-(减号)符号切换为显示。
问题是单击负号将不会触发下拉菜单再次切换-仅在显示+号时有效。
有人知道我做错了吗?
谢谢
$('#menu li:has(ul)').each(function() {
$(this).append( "<span class='submenuplus plusminus'> + </span>" );
$(this).append( "<span class='submenuminus plusminus'> - </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'> + </span>" );
$(this).append("<span class='submenuminus plusminus'> - </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.