0

同時にdivを開く/閉じるのに問題があります。私はそれについてたくさん読んで、すべてのように試しましたが、何もうまくいかないようです...これはそれがどのように見えるべきかです:

デモ

これは私が得たコードです。1つのDIVで完全に機能します。

$(document).ready(function(){

    $(".slidingDiv").hide();
    $(".show_hide").show();

$('.show_hide').click(function(){
$(".slidingDiv").slideToggle();
}); });

これを3div以上で機能させたい:新しいリンクがクリックされてdivがスライドを表示するとすぐに、現在開いているdivがスライドで閉じます。

よろしくお願いします:-)ありがとうございました!!

4

2 に答える 2

0

$(".slidingDiv2").slideToggle();この行を追加してみてください。それが役立つことを願っています。

わかりました。最初はあなたを取得できなかったので、その部分を投稿し ました$('.menu').click(function(){ $(".slidingDiv").slideToggle(); $(".slidingDiv2").slideToggle(); }); 。これを追加すると役立ちます。実際、コードが最初に実行しているのは、クラスshow_hideをクリックするだけです。ハイパーリンクを機能させたい場合は、ハイパーリンクのクラスを使用します。

于 2012-09-21T10:13:38.913 に答える
0

私が正しく理解していれば、あなたは次のようなことを求めていると思います。

$('a.link').on('click', function(e) {

  e.preventDefault();
  var slideSelector = '#' + $(this).attr('id').replace('link', 'slide');

  // slide down the div which corresponds to the clicked anchor,
  $(slideSelector).slideDown(500, function() {
    // slide the rest up
    $('div.slide').not($(slideSelector)).slideUp(500);
  });

  // or do it in the reverse order
  $('div.slide').not($(slideSelector)).slideUp(500, function() {
    $(slideSelector).slideDown(500);
  });      

});

上記の例で使用したマークアップは次のとおりです。-

<a id="link1" class="link" href="#">Link 1</a>
<a id="link2" class="link" href="#">Link 2</a>
<a id="link3" class="link" href="#">Link 3</a>

<div class="slide" id="slide1">Slide Example #1</div>
<div class="slide" id="slide2">Slide Example #2</div>
<div class="slide" id="slide3">Slide Example #3</div>

<a>'sと<div>'sはすべて'sが与えられていることに注意してくださいid。これらは、2つを相互に関連付けるために使用されます(を見てくださいslideSelector)。

これは、リンクがクリックされるたびに上記の各例を切り替えるフィドルです。

これは1つの方法にすぎません。たとえば、リンクとdivを別々のコンテナにラップし、をindex()クリックしたリンクに対応するdivを選択するためにを使用する方法もありますが、リンクとdivは次のようにする必要があります。これが機能するために同じ順序で表示されます。

于 2012-09-21T10:50:30.873 に答える