如何创建一个关闭打开的slideToggle

时间:2013-08-22 13:42:54

标签: jquery

我有以下示例:

http://jsfiddle.net/zidski/Vn9RD/

当链接1打开然后我点击链接2时,如何关闭链接1?

$('a.county').each( function(e){
    $(this).bind('click', function(e){ 
        var thisIs = $(this).index(); 
        $('.countystats').eq(thisIs).slideToggle(100); });
    });

5 个答案:

答案 0 :(得分:0)

首先滑开其他的:

$('.countystats').slideUp();
$('.countystats').eq(thisIs).slideDown(100);

答案 1 :(得分:0)

你可以尝试这种棘手的方式, 你的HTML会喜欢......

<div id="1sub" class="sub">sub1</div>
<div id="2sub" class="sub">sub2</div>
<div id="3sub" class="sub">sub3</div>

<div id="stream-1" class="stream" style="display:none;">Stream 1</div>
<div id="stream-2" class="stream" style="display:none;">Stream 2</div>
<div id="stream-3" class="stream" style="display:none;">Stream 3</div>

现在,在jquery

$(".sub").click(function(){
var subClicked = $(this).attr('id');
$(".stream").hide();
$("#stream-" + subClicked.substring(0,1)).toggle();
});

答案 2 :(得分:0)

您可以捕获您想要操作的当前元素 - 并使用.not()过滤掉

$('a.county').bind('click', function (e) {
    var thisIs = $(this).index();
    var $el = $('.countystats').eq(thisIs); // element you want to toggle
    $el.slideToggle(100);
    $('.countystats').not($el).slideUp(100); // slide all the other ones up
});

FIDDLE

答案 3 :(得分:0)

$('a.county').on('click',function(){
    $('.countystats').slideUp(300);
    $('.countystats').eq($(this).index()).slideDown(300);
});   

我已经更新了你的小提琴,也检查了一个。 http://jsfiddle.net/Vn9RD/3/

答案 4 :(得分:0)

试试这个:

$("a.county").on("click", function(e) {     
    var target = $(this).data("div");   
    $(target).slideToggle("fast");
    $(".countystats").not(target).hide();
    e.preventDefault();   
});

在这里工作小提琴:http://jsfiddle.net/7TdSK/

我希望它有所帮助。