0

アイデアは、リンクのクラスをアクティブに変更し、他のリンクからアクティブを削除し、クリックされたリンクに応じて変数を値に設定することです。「1」がクリックされた場合、変数 firstNumber は 1 になります。これは、後で「検証」のようなものです。コードは次のとおりです。「if else if...」の部分が削除されている場合、クラスの変更が機能するため、その部分に何か問題があるに違いありません。

$(document).ready(function (){
    $('.numbers-1 a').click(function(){
        $('.numbers-1 a').removeClass('active');
        $(this).addClass('active');

        if ( $(this).hasClass('num-1') ) {
            var firstNumber = 1;
        } else if ( $(this).hasClass('num-2') ) {
            var firstNumber = 2;
        } else if ( $(this).hasClass('num-3') ) {
            var firstNumber = 3;
        } else ( $(this).hasClass('num-4') ) {
            var firstNumber = 4;
        };
    });
});

htmlはこちら

<div class="numbers-1">
    <a class="num-1" href="#">1</a>
    <a class="num-2" href="#">2</a>
    <a class="num-3" href="#">3</a>
    <a class="num-4" href="#">4</a>
</div>

では、なぜ if ステートメントが jquery で機能しないのでしょうか?

4

2 に答える 2

2

else条件付きステートメントを取らないelse ifと私が仮定しているあなたの最終ステートメントであるはずでした。else

else if ( $(this).hasClass('num-4') ) {
   var firstNumber = 4;
}

ここでjsFiddle。

于 2013-06-23T20:47:34.843 に答える
0

コードを単純化しようとしました。これはどうですか ?

$(document).ready(function (){
    $('.numbers-1 a').click(function(){
        $('.numbers-1 a').removeClass('active');

        var currentClass = $(this).attr('class');

        $(this).addClass('active');

        var firstNumber = parseInt(currentClass.split('-')[1]);
    });
});
于 2013-06-24T08:36:37.260 に答える