0

少し問題が発生しました。私は一連のボタンを使用しており、押すと以前に表示されていたものを閉じてから、そのボタンにリンクされているものを開きます。

別のボタンが既に開いているときにボタンをダブルクリックする場合を除いて、その部分はうまく機能します。次に、クリックされたボタンへのリンクを閉じます。別のボタンをクリックすると、そのボタンにリンクされたボタンと、ダブルクリックした前のボタンが開きます。

このバグは、まだアクティブになっていないボタンをダブルクリックした場合にのみ発生します。

$(document).on('click', 'button', onButtonClick)

function onButtonClick() {
    target = $(this).attr('class')
    if ($('.active')[0]) {
        if(!$('.active').hasClass(target)) {
            $('.active').removeClass('active').slideToggle(function () {
                $('div.' + target).slideToggle().addClass('active')
            })
        }
    } else {
        $('div.' + target).slideToggle().addClass('active')
    }
}

これが私のフィドルです:http://jsfiddle.net/78TRb/

私の質問は、ボタンのシングルクリックのみを許可してバグを解消する方法はありますか、それとももっと良い方法がありますか?

あなたの助けに感謝します。

4

2 に答える 2

0
$(document).on('click', 'button', onButtonClick)
var clicked = false;
function onButtonClick() {
    if(clicked)
    {
        return;
    }

    target = $(this).attr('class')
    if ($('.active')[0]) {
        if(!$('.active').hasClass(target)) {
            clicked = true;
            $('.active').removeClass('active').slideToggle(function () {
                $('div.' + target).slideToggle().addClass('active') 
                clicked = false;
            })
        }

    } else {
        $('div.' + target).slideToggle().addClass('active')
        clicked = false;
    }
}

ここにフィドルがありますhttp://jsfiddle.net/78TRb/13/

于 2013-08-04T02:02:18.627 に答える