4

さて、アンカータグリンクがjqueryでアクティベートするIDを持つ要素のクラス(active/non_active)を変更するにはどうすればよいのでしょうか?

HTML:

<a href="#element1">Show element 1</a>
<a href="#element2">Show element 2</a>

<div id="element1" class="active"><p>Element 1</p></div>
<div id="element2" class="non_active"><p>Element 2</p></div>

CSS:

.active{ visibility:visible; }
.non_active{ visibility:hidden; }

前もって感謝します!

4

5 に答える 5

2

クリックした要素からを取得してhref、それをセレクターとして使用できます。

$("a").on("click", function() {
  $("div.active").toggleClass("active non-active");
  $($(this).attr("href")).toggleClass("active non-active");
});
于 2013-09-20T12:26:46.643 に答える
0
$("a").click(function(){
   $(a).removeClass("active");// Nake all the existing links inactive by removing class active
   $(this).addClass("active"); //then make current link as active
});
于 2013-09-20T12:32:33.097 に答える
0

non_activeクラスは必要ですか?私はそれを省略し、jQuery を使用して次のことを行います (読みやすくするために少し拡張しています)。

$('a').on('click', function(e){
    e.preventDefault(); // prevent the default <a> behaviour

    var $elm = $(this), // store the clicked element
        activateElement = $elm.attr('href'); // get the value of the href attribute

    $('.active').removeClass('active'); // remove currently active element

    $(activateElement).addClass('active');  // set clicked element to active by removing non_active
});

CSS:

div{ visibility: hidden; }
.active{ visibility:visible; }

デモ

于 2013-09-20T12:33:53.503 に答える
0
$("a").on("click", function() {
  var id = $(this).attr('href');
  $('.active').removeClass('active'); // remove existing active
  $(id).addClass('active'); // set current link as active
//or
//$(id).attr('class','active'); // set current link as active

});
于 2013-09-20T12:39:15.043 に答える