在活动时停止重新加载当前页面

时间:2010-10-29 15:39:08

标签: jquery

我想知道是否有办法禁止当前类使用jQuery重新加载页面?

例如,当您在“关于”页面上时,“关于”页面的当前状态不允许用户在再次单击链接时重新加载页面。所以,如果你有某种动画,它就不会重新开始。

如果有人可以伸出援助之手,我将非常感激。

谢谢,

这是我到目前为止所做的:

$(function() {
    $page = jQuery.url.attr("file");
    if (!$page) {
        $page = 'index.html';
    }
    $('ul.navigation li a').each(function() {
        var $href = $(this).attr('href');
        if (($href == $page) || ($href == '')) {
            $(this).addClass('current');
        } else {
            $(this).removeClass('current');
        }
    });
});

3 个答案:

答案 0 :(得分:0)

您必须捕获click事件并取消它。请参阅我在以下评论中添加的部分:

$(function(){
 $page = jQuery.url.attr("file");
 if(!$page) {
  $page = 'index.html';
 }
 $('ul.navigation li a').each(function(){
  var $href = $(this).attr('href');
  if ( ($href == $page) || ($href == '') ) {
   $(this).addClass('current');

   /** ADDED BELOW **/
   $(this).click(function(event) {
     event.preventDefault();
     event.stopPropagation();
   });
   /** ADDED ABOVE **/

  } else {
   $(this).removeClass('current');
  }
 });
});

答案 1 :(得分:0)

您可以通过将$(this).addClass('current')替换为:

来禁用链接
$(this).addClass('current').find("a").click( function() {
  return false;                     
})

这对我来说过去很有用,但刚刚看到Ben的更新,如果我和他的答案都能奏效或我的是否有缺陷,我会感兴趣吗?是event.preventDefault(); 和event.stopPropagation()更好的选择?

答案 2 :(得分:0)

如何动态地将哈希添加到当前页面的链接?单击URL中带有哈希的链接将不会重新加载页面。 (DOM元素有一个名为“hash”的属性,可以用于此。)