2012-07-30 53 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