#html #jquery
#HTML #jquery
Вопрос:
Не уверен, что это лучший способ, но, как видно ниже, я получаю текущую страницу и добавляю ее в div «load_more», затем я использую это значение в функции до 1. однако теперь мне нужно другое значение, добавленное к этому «общему количеству страниц», и я не уверенкуда его добавить (другой div). Могу ли я добавить его в div (тот же, что и при нажатии), а затем вырезать результаты? в функции загрузки дополнительных кликов?
Спасибо
возвращает значение
$('.load_more').live("click", function(){ //When user clicks
var currentPage = parseInt($(this).attr('id'), 10);
currentPage;
alert(currentPage);
dosomething(currentPage);
});
установите значение
var currentPage = "";
var totalPages = ";"
$.each(r.MESSAGES, function(key, value){
currentPage = value.CURRENTPAGE;
totalPages = value.TOTALPAGES;
})
jQuery('.load_more').attr("id", currentPage);
HTML
<div id="load-more">
<a class="load_more" id="123" href="#">
Load More
</a>
</div>
Ответ №1:
Вместо добавления атрибутов DOM в ваш класс load_more
может быть идея использовать хранилище данных jQuery. http://api.jquery.com/data /
Очень прост в использовании: http://jsfiddle.net/j3bb5 /
$('.load_more').data("current_page", 1); // Setting variable current_page;
alert( $('.load_more').data("current_page") ); // Getting variable current_page, alerts "1"
И вы также можете хранить объекты: http://jsfiddle.net/j3bb5/1 /
$('.load_more').data("current_page", { // Setting variable current_page;
id: 1,
name: "My page 1"
}); // Setting variable current_page;
alert( $('.load_more').data("current_page").id ); // Getting variable current_page, alerts "1"
alert( $('.load_more').data("current_page").name ); // Getting variable current_page, alerts "My page 1"
А теперь к вашему примеру: http://jsfiddle.net/j3bb5/4 /
Не знаю, что такое переменная r
, но что-то вроде этого?
var r = {
MESSAGES: [{
CURRENTPAGE: 1,
TOTALPAGES: 4
},{
CURRENTPAGE: 2,
TOTALPAGES: 4
}]
};
Функция doSomething
ничего не делает 😉
function doSomething(CURRENTPAGE, TOTALPAGES) {};
Установка значений из r.MESSAGES
jQuery.fn.data
метода using
Сначала мы определяем наши временные CURRENTPAGE
и TOTALPAGES
переменные
var CURRENTPAGE = 0, TOTALPAGES = 0;
Циклы генерируют r.MESSAGES
и обновляют CURRENTPAGE
и TOTALPAGES
$.each(r.MESSAGES, function(key, value) {
CURRENTPAGE = value.CURRENTPAGE;
TOTALPAGES = value.TOTALPAGES;
});
Привязывает их к селектору .load_more
$('.load_more').data("CURRENTPAGE", CURRENTPAGE);
$('.load_more').data("TOTALPAGES", TOTALPAGES);
Нажмите событие на .load_more
$('.load_more').live("click", function() {
Получение CURRENTPAGE
и TOTALPAGES
из data
метода:
var CURRENTPAGE = $(this).data("CURRENTPAGE");
var TOTALPAGES = $(this).data("TOTALPAGES");
Оповещение значений:
alert("CURRENTPAGE: " CURRENTPAGE);
alert("TOTALPAGES: " TOTALPAGES);
И теперь увеличивает значения на единицу: обратите внимание на двойной знак перед нашими переменными. Это означает, что вы добавляете единицу к значению. См. немного более глубокое объяснение: http://jsfiddle.net/j3bb5/6 /
$(this).data("CURRENTPAGE", CURRENTPAGE);
$(this).data("TOTALPAGES", TOTALPAGES);
doSomething(CURRENTPAGE, TOTALPAGES);
});
Комментарии:
1. это потрясающе! большое спасибо, действительно помогло! не знал об использовании хранилища данных jQuery, круто!