为什么每次单击空链接时我的页面都会刷新?

时间:2012-05-11 16:10:41

标签: javascript jquery

我有这样的链接:

<a hreflang="15" class="comment-show-link" href="">View/hide comments</a>

然后让这段代码显示/隐藏内容:

$('.comment-show-link').click(function(e) {
  $('#comment-show-'+$(this).attr("hreflang")).slideToggle('slow');
  e.stopPropagation();
});

但是当我点击链接页面被发送并且div“#comment-show-”没有显示时,为什么?我做错了什么?

9 个答案:

答案 0 :(得分:7)

您不希望stopPropagation(停止事件冒泡),您需要preventDefault(这会阻止事件的默认操作 - 在这种情况下,在链接之后)。或者只是从事件处理函数返回falsedoes both [在链接上,向下滚动到以“返回false ...”开头的段落] 。 / p>

答案 1 :(得分:1)

只需转到href属性javascript:;

即可
<a hreflang="15" class="comment-show-link" href="javascript:;">View/hide comments</a>

答案 2 :(得分:1)

尝试:

<a data-hreflang="15" class="comment-show-link" href="#">View/hide comments</a>

-

$('.comment-show-link').on('click', function(e) {
    e.preventDefault();
    $('#comment-show-'+$(this).data("hreflang")).slideToggle('slow');
});

或者为了防止默认动作和冒泡,请执行

$('.comment-show-link').on('click', function() {
    $('#comment-show-'+$(this).data("hreflang")).slideToggle('slow');
    return false;
});

答案 3 :(得分:1)

这是锚标记的行为。我想你想让e.PreventDefault阻止它。

答案 4 :(得分:0)

删除href,它没用(当然最好使用简单的跨度)。

如果添加它来更改光标,请改用css(光标:指针)。

答案 5 :(得分:0)

您可以使用preventDefault();

$('.comment-show-link').click(function(e) {
  $('#comment-show-'+$(this).attr("hreflang")).slideToggle('slow');
  e.preventDefault();
});

答案 6 :(得分:0)

请勿使用链接。

您没有链接到任何内容,因此将您的内容标记为链接是没有意义的。

答案 7 :(得分:0)

尝试

$('.comment-show-link').click(function(e) {
  $('#comment-show-'+$(this).attr("hreflang")).slideToggle('slow');
  e.stopPropagation();
  return false;
});

答案 8 :(得分:0)

尝试将href属性设置为 href =“javascript:void(0);”

这是一个jsfiddle:

http://jsfiddle.net/septerr/taCvq/