Я создаю загрузку ajax для моего проекта wordpress.сбрасывать переменную jquery до начального
Когда я прокручиваю страницу вниз, количество страниц увеличивается на 1 каждый раз. который изначально я хочу.
Реальная проблема:
Когда я выбираю категорию падение вниз, я хочу, чтобы сбросить переменные страницы в 1. После кода установите номер страницы в 1 для экземпляра она называется, а потом, когда я прокручиваю вниз на странице она увеличилась с предыдущим номером не с 1.
для Ex: Когда я открываю эту ссылку и проверить в поджигатель ...
- I see pageNumber variable set to 1.
- Now scroll down to page and it will be changed 2. Now when I go back to up and select any category to filter posts, and
- Inspect page number in firebug it is now showing 1, which is right.
- But Now if you scroll down to page you will pagenumber is changed to 3 not 2.
Это проблема ...
// ajaxLoop.js
jQuery(function($){
var $grid = $('.post-area').masonry({
itemSelector: '.post-area .box',
});
var page = 1; // initialization
var loading = true;
var $window = $(window);
var $content = $("body.blog #main");
var load_posts = function(page = 1, cat = '', year = '', orderby = ''){
// If any filter is applied and page is 1
if((cat != '' || year != '' || orderby != '') && page == 1){
$content.html('');
page = 1; // I think this will reset the page variable to 1, but it is not working
}
$.ajax({
type : "GET",
data : {numPosts : 1, pageNumber: page, cat: cat, year: year, orderby: orderby},
dataType : "html",
url : "wp-content/themes/theme-name/loopHandler.php",
beforeSend : function(){
if(page != 1){
$content.append('<div id="temp_load" style="text-align:center">\
<img src="/wp-content/themes/theme-name/images/ajax-loader.gif" />\
</div>');
}
},
success : function(data){
$data = $(data);
if($data.length){
$data.hide();
$content.append($data);
$grid.append($data).masonry('appended', $data);
$grid.masonry('reloadItems');
$grid.masonry('layout');
$data.fadeIn(500, function(){
$("#temp_load").remove();
loading = false;
});
} else {
$("#temp_load").remove();
}
},
error : function(jqXHR, textStatus, errorThrown) {
$("#temp_load").remove();
alert(jqXHR + " :: " + textStatus + " :: " + errorThrown);
}
});
}
$window.scroll(function() {
var content_offset = $content.offset();
console.log(content_offset.top);
if(!loading && ($window.scrollTop() +
$window.height()) > ($content.scrollTop() + $content.height() + content_offset.top)) {
loading = true;
var cat = $('select[name="cat"]').val();
var year = $('select[name="year"]').val();
var orderby = $('select[name="orderby"]').val();
page++;
load_posts(page, cat, year, orderby);
}
});
$('select[name="cat"]').on('change', function() {
var cat = $(this).val();
var year = $('select[name="year"]').val();
var orderby = $('select[name="orderby"]').val();
load_posts(1, cat, year, orderby);
});
$('select[name="year"]').on('change', function() {
var year = $(this).val();
var cat = $('select[name="cat"]').val();
var orderby = $('select[name="orderby"]').val();
load_posts(1, cat, year, orderby);
});
$('select[name="orderby"]').on('change', function() {
var orderby = $(this).val();
var cat = $('select[name="cat"]').val();
var year = $('select[name="year"]').val();
load_posts(1, cat, year, orderby);
});
load_posts();
});
Я думаю, что это должно быть легким решением, но не для того, чтобы понять это. Может ли кто-нибудь вести меня в правильном направлении? Я не так Ниндзя с JQuery ...
Если это то, что вы нажимаете, почему бы просто не проверить щелчок на этом конкретном типе элемента, а затем установить значение 1? –
Это из-за объема вашей переменной 'page'. Если одна и та же переменная доступна в обеих областях методов, она не создаст эту проблему. –
'if ((cat! = '' || year! = '' || orderby! = '') && page == 1) {'в чем заключается требование установки' page = 1', если его уже «1» –