2

私は本当に私のコードに固執しました、それは1つのことを除いてうまく機能しています、私が開くために他のdivをクリックするとき、私は開いているすべてのdivを閉じる必要があります、これが私のコードです:

function readFaq() {

$('.find-faq-inner h3').prepend('<span id="spanfaq" class="faq-open"></span>');

$('.find-faq-inner h3').each(function () {
    var tis = $(this), state = false;
    var answer = tis.next('div').hide().css('height', 'auto').slideUp();

    tis.click(function () {
        state = !state;
        answer.slideToggle(state);
        tis.toggleClass('active', state);

        if (state == true) {
            tis.find('#spanfaq').removeClass('faq-open');
            tis.find('#spanfaq').addClass('faq-close');
        }
        else {
            tis.find('#spanfaq').removeClass('faq-close');
            tis.find('#spanfaq').addClass('faq-open');
        }

    });
    });
}


<div class="find-faq-inner">
    <div class="text">
    <h3>FAQ1</h3>
    <div>
    text of faq
    </div>
    </div>
</div>

どんなアイデアも役に立ちます、ありがとう

4

1 に答える 1

1
function readFaq() {

$('.find-faq-inner h3').prepend('<span id="spanfaq" class="faq-open"></span>');

$('.find-faq-inner h3').each(function () {
    var tis = $(this), state = false, answer = tis.next('div').hide().css('height', 'auto').slideUp();
    tis.click(function () {
        state = !state;

       $('.find-faq-inner .text div').hide();// This will hide all the divs

        answer.slideToggle(state);
        tis.toggleClass('active', state);

        if (state == true) {
            tis.find('#spanfaq').removeClass('faq-open');
            tis.find('#spanfaq').addClass('faq-close');
        }
        else {
            tis.find('#spanfaq').removeClass('faq-close');
            tis.find('#spanfaq').addClass('faq-open');
        }

    });
    });
}

上記の関数で私は追加しました $('.find-faq-inner .text div').hide();

これにより、div内のすべてのfind-faq-innerdivが非表示になり、コードで適宜使用されます。

より安全にするために、あなたも使用することができます

$('.find-faq-inner .text > div').hide();

クラスのdivの直接の子であるdivのみを非表示にしますtext

于 2012-05-22T16:46:25.920 に答える