2012-05-24 46 views
0

如何在菜单中单击另一个元素时添加一个将在切换中关闭活动div的函数。Closing opened toggle div

这里是代码:

http://jsfiddle.net/t4JAT/

jQuery代码

$(document).ready(function(){ 

     $(".slidingDiv1").hide(); 
     $(".show_hide1").show(); 

    $('.show_hide1').click(function(){ 
    $(".slidingDiv1").slideToggle(); 
    }); 

}); 
$(document).ready(function(){ 

     $(".slidingDiv2").hide(); 
     $(".show_hide2").show(); 

    $('.show_hide2').click(function(){ 
    $(".slidingDiv2").slideToggle(); 
    }); 

}); 
$(document).ready(function(){ 

     $(".slidingDiv3").hide(); 
     $(".show_hide3").show(); 

    $('.show_hide3').click(function(){ 
    $(".slidingDiv3").slideToggle(); 
    }); 

});​ 
+0

在这种格式下,这个问题是超级本地化! – gdoron

回答

0

工作演示,你只需要一个在你的页面http://jsfiddle.net/t4JAT/4/

请避免这么多的文件准备好电话。

休息下面应该有所帮助。

代码

$(document).ready(function(){ 

     $(".slidingDiv1,.slidingDiv2, .slidingDiv3").hide(); 
     $(".show_hide1,.show_hide2, .show_hide3").show(); 


    $('.show_hide1').click(function(){ 
     $(".slidingDiv2,.slidingDiv3").hide(); 
     $(".slidingDiv1").slideToggle(); 
    }); 


    $('.show_hide2').click(function(){ 
     $(".slidingDiv1,.slidingDiv3").hide(); 
     $(".slidingDiv2").slideToggle(); 
    }); 



    $('.show_hide3').click(function(){ 
     $(".slidingDiv1,.slidingDiv2").hide(); 
     $(".slidingDiv3").slideToggle(); 
    }); 

});​ 
+0

这对我来说只适用于jsFiddle。当我尝试在html网站中使用此代码时,所有div都在html预览中打开。出于测试目的,我删除了所有其他JavaScript代码,但它似乎提出了其他问题,这不希望隐藏/滑动div – Marko

+0

嗯@Marko你可以请尝试复制它在jsfiddle,或者你可能会缺少一个库或东西小?让我知道它是怎么回事 –

+0

好吧,它的工作原理是加载库的问题。谢谢! – Marko

0

您可以使用标签jQuery中是这样的:

此导入CSS和JS文件jqueryui然后使用这个:

<div id="tabs"> 
<ul> 
    <li><a href="#tabs-1">Nunc tincidunt</a></li> 
    <li><a href="#tabs-2">Proin dolor</a></li> 
    <li><a href="#tabs-3">Aenean lacinia</a></li> 
</ul> 
<div id="tabs-1"> 
    <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> 
</div> 
<div id="tabs-2"> 
    <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p> 
</div> 
<div id="tabs-3"> 
    <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p> 
    <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p> 
</div> 
</div> 


<script> 
$(function() { 
    $("#tabs").tabs(); 
}); 
</script> 
+0

我知道,但标签不是将被使用的解决方案,因此切换元素更适合我的需求。谢谢 – Marko

0

根据你提供什么,你可以添加

$('div[class^=slidingDiv]').hide(); 

上述行所做的是选择所有divs其中有一个class nameslidingDiv并隐藏他们开始在这种情况下是Content div。

在每个click事件处理程序中,首先关闭所有div,这必然会隐藏当前打开的任何内容div。

一件事,你可以的东西,你的所有代码在一个document ready

$(function(){ 
    //all your code goes here 
}) 

要检查它是否在div23工作检查Lorem1div1Lorem2div2Lorem3。改变了这一点来验证。

Working Fiddle