jquery两次单击而不是一次执行代码

时间:2013-04-15 16:18:37

标签: jquery

我发现了这个javascript代码,而这正是我正在寻找的。这是一个带滑动效果的显示/隐藏代码。

$(document).ready(function() {
if($('div.tab').length > 0) {
    $('div.tab').click(function() {
        if($(this).hasClass('open')) {
            $(this).removeClass('open');
            $(this).addClass('close');
            $(this).next().slideDown(300);
            return false;
        } else {
            $(this).removeClass('close');
            $(this).addClass('open');
            $(this).next().slideUp(300);
            return false;
        }
    })
}

现在,我想添加一个代码,一次只显示一个DIV,用幻灯片效果关闭打开的DIV。所以,我添加了一些代码,它的工作原理我希望它能够工作。但问题是,当一个DIV打开时,我点击另一个新的DIV,一切正常,但是当我点击已经访问过的DIV时,我需要两次点击而不是一次来执行代码。我对js编码不了解,所以我在这里请求你的帮助。

以下是我的更改代码。

$(document).ready(function() {
if($('div.tab').length > 0) {
    $('div.tab').click(function() {
        if($(this).hasClass('open')) {
            $(this).removeClass('open');
                  $(this).addClass('close')**.siblings('div.container').slideUp(300)**;
            $(this).next().slideDown(300);
            return false;
        } else {
            $(this).removeClass('close');
            $(this).addClass('open');
            $(this).next().slideUp(300);
            return false;
        }
    })
}

1 个答案:

答案 0 :(得分:0)

我有它的作品。我改变了一些代码,我正是我正在寻找的东西。它现在一次显示一个选项卡,单击同一选项卡时显示/隐藏工作。也许这不是一种正确的编码方式,因为我没有js的知识,但它对我来说非常有用。

$(document).ready(function() {

$('div.tab').click(function() { 
    if($(this).hasClass('open')) {
        $(this).next().slideToggle(300).siblings('div.container').slideUp(300);

    } else {

        $(this).next().slideToggle(300);

    }
})                                                  

}) http://jsfiddle.net/9szef/1/