Я использую эту функцию для "загрузки большего количества элементов списка" по мере необходимости.
Загрузка большей функции, которую я использую: http://jsfiddle.net/cse_tushar/6FzSb/2/
Я заполняю свой список PHP. Моя проблема в том, что все элементы списка отображаются при загрузке страницы. Когда я нажимаю на загрузку больше, функциональность начинает работать, и я могу загружать больше или загружать меньше. На загрузке страницы должно отображаться только 3 элемента списка (x = 3).
Любые идеи, как я могу это решить?
Заранее спасибо!
Код списка:
<?php include('comments.php');
/*
/ Output the comments one by one:
*/
foreach($comments as $c){
echo $c->markup();
}
?>
comments.php (упрощенный):
class Comment
{
public function markup()
{
return '<li>$text</li>' };
};
JS нагрузки больше:
$(document).ready(function () {
size_li = $("#myList li").size();
x=3;
$('#myList li:lt('+x+')').show();
$('#loadMore').click(function () {
x= (x+5 <= size_li) ? x+5 : size_li;
$('#myList li:lt('+x+')').show();
$('#showLess').show();
if(x == size_li){
$('#loadMore').hide();
}
});
$('#showLess').click(function () {
x=(x-5<0) ? 3 : x-5;
$('#myList li').not(':lt('+x+')').hide();
$('#loadMore').show();
$('#showLess').show();
if(x == 3){
$('#showLess').hide();
}
});
});
Чтобы вывести только 3 раза, вам нужно установить счетчик (простую переменную), чтобы подсчитать, сколько раз вы печатали разметку. Вы можете сделать что-то подобное для достижения этой цели:
$i = 0;
foreach($comments as $c){
$i++;
if($i < 4) {
echo $c->markup();
}
}