0

クリックするとコンテンツを表示するために下にスライドして上にスライドするjQueryアコーディオンスライダーがいくつかあります。すべてが正常に機能しますが、同じリンクをクリックして同じコンテンツを上にスライドすると、ページの上部にジャンプします。

私は持っています

return false;

別のスライダーがクリックされたときにページの上部にジャンプしないようにするため、同じコンテンツを上にスライドするためにページの上部にジャンプしないように、何を使用するかについてあまりよくわからないようにします。

私は追加するために結ばれました

event.preventDefault();

これは機能しますが、IE9とIE8では機能しません。

これが私が持っているものです:

$(document).ready(function() {
$('.slider').click(function() {  
    $('.internal').slideUp('normal');
    if ($(this).next().is(':hidden') == true) {
        $(this).addClass('on');
        $(this).next().slideDown('normal');
         return false;
    }
});
$('.internal').hide();
});

HTMLサンプル:

<div class="slider"><a href="#">Slide Link 1</a></div>
<div class="internal">
    Stuff1
</div>
<div class="slider"><a href="#">Slide Link 2</a></div>
<div class="internal">
    Stuff2
</div>
4

2 に答える 2

2

リンクにはおそらくのようなアンカータグがあります。<a href="#" ...>削除href="#"してみてください。それでもポインタカーソルのあるリンクのように見せたい場合は、cssを使用してください。

a{
    cursor: pointer;
}
于 2012-08-21T18:46:33.317 に答える
2

クリックイベントのデフォルトのアクションを防止する必要があります。これを試して:

$(document).ready(function() {
  $('.slider').click(function(e) {
  e.preventDefault();  
  $('.internal').slideUp('normal');
  if ($(this).next().is(':hidden') == true) {
        $(this).addClass('on');
      $(this).next().slideDown('normal');
       return false;
  }
});
$('.internal').hide();
});
于 2012-08-21T18:59:43.773 に答える