2014-11-06 59 views
1

我的JQ代碼存在一些問題。jQuery-增加顯示的元素

默認我只能顯示我的UL列表中的4個元素。但是,如果我點擊「顯示更多」元素,我必須從UL列表中顯示+4個(+4)個元素。

有人知道我該怎麼做?

對不起,我的英語不好:(

這是我的代碼:

$(document).ready(function() { 
    $('ul#Galeria > li:gt(3)').css("display", "none"); 
    $(".readmore > a").click(function() { 
     $("ul#Galeria > li:gt(3)").fadeIn("slow").show(); 
     $(".readmore").css('display', 'none'); 
     return false; 
    }); 
}); 

http://jsfiddle.net/6w2nm7z1/

+2

請在你的問題中的代碼。鏈接到jsFiddle是不夠的,系統沒有告訴你嗎? – nicael 2014-11-06 15:23:57

+1

[jQuery加載前3個元素,點擊「加載更多」以顯示下5個元素]可能的重複(http://stackoverflow.com/questions/17736786/jquery-load-first-3-elements-click-load-more -to-顯示下一-5-元素) – 2014-11-06 15:27:29

回答

2

KyleK是對的。你需要選擇jQuery。我製作了一個更通用的腳本,允許您單擊閱讀更多內容,直到顯示所有項目,並設置每次點擊要顯示的項目數量。希望這是有幫助的。

var displayCount = -1; // tracks how many are showing 
var readMoreIncrement = 4; // number of items to show at each increment 
var liTotal = $("ul#Galeria li").length; // total number of items in list 
console.log("liTotal: "+liTotal); 
readMore(); 
$(".readmore > a").click(readMore); 
function readMore() { 
    displayCount += readMoreIncrement; 
    console.log("displayCount: "+displayCount); 
    $('ul#Galeria > li:gt(' + displayCount + ')').css("display", "none"); // hides items that are not ready to be shown 
    $("ul#Galeria > li:lt(" + (displayCount + 1) + ")").fadeIn("slow").show(); // shows the next set of items 
    if(displayCount >= (liTotal - 1)) $(".readmore").css('display', 'none'); // hides read more link when all items are shown 
    return false; 
} 

演示:http://jsfiddle.net/wilchow/o771897y/4/

0

你沒有在框架&擴展菜單中選擇的jQuery因此,這個簡單的代碼工作:

$('ul#Galeria > li:gt(3)').fadeOut(0); 
$(".readmore > a").click(function() { 
    $("ul#Galeria > li:gt(3)").fadeIn("slow"); 
}); 

http://jsfiddle.net/KyleKatarn/6w2nm7z1/3/