0

良い一日。

jQueryで次のクリック機能を使用しています

 $(function () {

            $("#areas ul a").click(function (event) {
                event.preventDefault();
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500)

            });

        });

私がやりたいことは、そのループで、特定の要素がアクティブかどうかを確認し、それに基づいて行動することです:

例えば。

 $("#areas ul a").click(function (event) {
                event.preventDefault();
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500)

                //I'm adding this... but it is not working

                if($(this).attr(href) = 'pretoriaDetail'){
                  alert('it works');
                }

            });

if ステートメントを機能させるにはどうすればよいですか?

ありがとう

4

3 に答える 3

2

classがDOMに適用されているかどうかを確認したい場合.hasClassに役立ちます。

公式ドキュメント: http://api.jquery.com/hasClass/

もう1つ、コードにエラーがあります。

if($(this).attr(href) = 'pretoriaDetail'){
          alert('it works');
}

でなければなりません

if($(this).attr("href") == 'pretoriaDetail'){
          alert('it works');
}

それを比較し、href を引用符で囲む必要がある間、それに=値を割り当てるためです。==

于 2013-02-26T07:57:51.927 に答える
1
 $(function () {
        $("#areas ul a").click(function (event) {
            event.preventDefault();
            if(!$(this).hasClass('activeAreas')){
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500);
            }
        });

    });
于 2013-02-26T08:46:36.330 に答える
0

これを試してみるべきだと思います:

var ID = $(this).attr("href");

$('#'+ID).show(500);

Declare a variable and use it as an id.

次に、これは次のようになります。

      $(function () {
        $("#areas ul a").click(function (event) {
            var ID = $(this).attr("href");
            event.preventDefault();
            $("#areas ul li a").removeClass('activeAreas');
            $(this).addClass('activeAreas');
            $(".hidden").hide(200);
            $('#'+ID).show(500); // or this way $('[id="'+ID+'"]').show(500);
        });
     });
于 2013-02-26T08:08:49.593 に答える