我认为对于有 jquery 经验的人来说,这不是一个困难的问题,但不幸的是,我不是。我确实四处搜索,发现了一些类似的问题,但我无法将提到的解决方案中的点联系起来。
<div id="Top">
<p>Lorem ipsum dolor</p>
<ul class="links">
<li class="one"><a href="#">One</a></li>
<li class="two"><a href="#">Two</a></li>
<li class="three"><a href="#">Three</a></li>
</ul>
</div>
<div id="one">
<p>Lorem ipsum</p>
</div>
<div id="two">
<p>Lorem ipsum</p>
</div>
<div id="three">
<p>Lorem ipsum</p>
</div>
所以,我有一个名为“top”的 div,在该 div 的底部,我显示三个链接,一、二和三。在该 div 下方,还有 3 个其他 div,全部显示:无,如果单击相应链接之一,我想显示这些 div。但是,我只想在一个打开的 div 关闭后显示一个 div。此时,一个正在关闭,另一个正在打开。
我尝试了很多东西,但都没有成功。我希望有人可以帮助我提供我可以理解的解决方案!
作为一个新手,我可能走错了路,但无论如何,我尝试过的事情:
$("li.one a").click(function(event){
event.preventDefault();
$("#one").slideToggle( "slow", function(){
$("#two, #three").slideUp( "slow" );
});
});
这仅适用于 li.one a,同样适用于 li.two a 和 li.three a
我试过这样:
$("li.een a").click(function(event){
event.preventDefault();
if( $( "#een" ).hasClass( "open" ) ) {
$("#een").slideUp( "slow" ).removeClass("open");
}
else {
$("#een").slideDown( "slow" ).addClass("open");
};
});
好的,我查看了 Gal 的答案并做了这个:
$("li.one a").click(function(event){
event.preventDefault();
$('#two').slideUp(function(){
$('#one').slideToggle();
});
});
我把它们放进去,这样两个和三个就可以滑开
$("li.two a").click(function(event){
event.preventDefault();
$("#two").slideToggle( "slow" );
});
$("li.three a").click(function(event){
event.preventDefault();
$("#three").slideToggle( "slow" );
});
它部分有效!一和二可以滑动切换。如果打开了两个并且单击了一个,则关闭了两个,完成后,打开了一个滑动切换。
这就是它开始出错的地方......
这个
$('#two').slideUp(function(){
只让#two 向上滑动,但如果#three 打开,则在单击 li.one a 时它不会关闭。
我试过了
$('#two, #tree').slideUp(function(){
但这会产生错误的行为。
$("li.one a").click(function(event){
event.preventDefault();
$('#two').slideUp(function(){
$('#one').slideToggle();
});
});