向上滑动跳转到页面顶部

时间:2012-08-21 18:43:28

标签: javascript jquery jquery-ui-accordion

我有一些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>

2 个答案:

答案 0 :(得分:2)

链接可能包含<a href="#" ...>之类的锚标签,尝试删除href="#",如果您仍然希望看起来像带指针光标的链接,请使用css:

a{
    cursor: pointer;
}

答案 1 :(得分:1)

您将要阻止click事件的默认操作。试试这个:

$(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();
});