2012-07-30 58 views
2

可见我有这样的javascript代码:使项目与按钮

function newsOverview() { 
    $(".list-news li:gt(3)").hide(); 
    $(".box-news .btn-1").on('click', function(e){ 
     e.preventDefault; 
     $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600); 
    }); 
}; 

我有一个大名单李项。该脚本每次显示4个项目。当你点击btn-1按钮时。但是现在我对这个脚本有个疑问。

  • 为什么e.preventDefault不起作用?当我点击按钮。我滚动回页面的顶部。为什么这不起作用?
  • 而且,这是否可能。当所有项目都可见时。该按钮消失。

回答

3

1)的preventDefault不工作,因为它是一个函数。 它应该像如下:

e.preventDefault(); 

2),看看是否所有项目都可见,尝试使用下面的代码:

if ($(".list-news li:hidden").lehgth == 0) { 
    $(".box-news .btn-1").hide(); 
} 
1

为什么e.preventDefault不起作用?

你错过了括号,以实际呼叫preventDefault

function newsOverview() { 
    $(".list-news li:gt(3)").hide(); 
    $(".box-news .btn-1").on('click', function(e){ 
     e.preventDefault(); // don't forget those 
     $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600); 
    }); 
}; 

而且,是否有可能。当所有项目都可见时。该按钮消失。

我jQuery是一个有点生疏,但这样的事情应该工作:

function newsOverview() { 
    $(".list-news li:gt(3)").hide(); 
    $(".box-news .btn-1").on('click', function(e){ 
     e.preventDefault(); 
     if($(".list-news li:hidden").length === 0) 
      $(this).hide(); 
     else 
      $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600); 
    }); 
}; 
0

e.preventdefault(); not working

和,你总是可以用“返回false;“按钮上,我想。

+1

这应该是一个评论或投票结束,而不是一个答案。请参阅http://meta.stackexchange.com/questions/118582/what-is-an-acceptable-answer。 – Zeta 2012-07-30 11:59:06