我正在创建一个jquery手风琴并且触发效果是onclick,我有问题,因为在ul的最后一级有一个slideUp和slideDown的多余动作,当我执行以下操作时出现错误
-
正如您所注意到的,您只需点击一次,但会触发slideUp和slideDown。 这是我的jquery
$(document).ready(function() {
$("#ins-type").appendTo("li.prd");
$("li.prd>a").click(function(event){
event.preventDefault();
$("#ins-type").slideToggle();
});
$("#ins-type>li>a").stop().click(function(event){
event.preventDefault();
if($(this).parent().hasClass("act")){
$(this).parent().find('ul').find(".act").find('.the-ins-desc').slideUp().parent().removeClass("act");
$(this).parent().find("ul.the-ins").slideUp();
$(this).parent().removeClass("act");
}else{
$("#ins-type>li").removeClass("act").find("ul.the-ins").slideUp();
$(this).parent().addClass("act");
$(this).parent().find("ul.the-ins").slideDown(function(){
$(this).find('li').children('a').click(function(event){
event.preventDefault();
if($(this).parent().hasClass("act")){
$(this).parent().removeClass("act");
$(this).parent().find("ul").slideUp();
console.log("clise");
}else{
$(".the-ins>li").removeClass("act").find('.the-ins-desc').slideUp();
$(this).parent().addClass("act").find("ul").stop().slideDown();
console.log("open");
}
return false;
});
});
}
});
});
答案 0 :(得分:0)
你的最后一个“if,else”语句,在括号中输入false。
https://jsfiddle.net/mx64mswn/1/
if($(this).parent().hasClass("act")){
$(this).parent().removeClass("act");
$(this).parent().find("ul").slideUp();
console.log("clise");
return false;
}else{
$(".the-ins>li").removeClass("act").find('.the-ins-desc').slideUp();
$(this).parent().addClass("act").find("ul").stop().slideDown();
console.log("open");
return false;
}