Maison > Questions et réponses > le corps du texte
Ce que je veux obtenir, c'est un menu pliable, mais le slidetoggle ne peut être réduit qu'en cliquant dessus. Ce que je veux, c'est cliquer sur d'autres options et le menu développé se réduira automatiquement. Comment puis-je le modifier ?
Le code est le suivant :
$("> li", this).each(function () {
$(this).bind("click", function () {
if($(this).hasClass('active')){
//$(".inner ol").hide();
//$(this).siblings("ol").slideToggle(settings.speed);
$(this).next("ol").slideToggle(settings.speed);
$(this).removeClass('active');
}else{
$(this).siblings('li').removeClass('active');
//$(".inner ol").hide();
$(this).addClass('active')
$(this).next("ol").slideToggle(settings.speed);
}
});
});
//默认折叠
$("> ol", this).hide();
ringa_lee2017-07-05 11:08:06
L'idée est la suivante :
1. Lorsque vous cliquez sur le menu actuel, enregistrez-le, fermez d'abord tous les menus ouverts, et enfin ouvrez-vous
$(".menu .menu-header").on("click",function(){
var toggleTarget=$(this);
//先把其他得关掉
$(".menu .menu-content").removeClass("active");
$(this).find(".menu-content").addclass("active");
})
Le code ci-dessus n'est qu'un exemple de démonstration, donnez-moi une idée générale et voyez si cela fonctionne
天蓬老师2017-07-05 11:08:06
J'ai vérifié les informations en ligne et découvert qu'il existe une fonction slideup(). Utilisez-la simplement pour remplacer hide().
$("> li", this).each(function () {
$(this).bind("click", function () {
if($(this).hasClass('active')){
$(".inner ol").slideUp('500');
$(this).removeClass('active');
}else{
$(this).siblings('li').removeClass('active');
$(".inner ol").slideUp('500');
$(this).addClass('active')
$(this).next("ol").slideToggle(settings.speed);
}
});
});
//默认折叠
$("> ol", this).hide();