如果满足两个条件,我正在使用if语句来执行元素的.load():
if (current_items <= {{total_hits}} && infinite_scroll != 'disabled') {
$(window).scroll(function () {
if ($(document).height() <= $(window).scrollTop() + $(window).height()) {
var sort_by = $('#sort_by').val();
if ($('input:checkbox:checked').val()) {
var category_filter = ""
$('input:checkbox:checked').each(function() {
category_filter += "\""+$(this).val()+"\","
});
category_filter = category_filter.substring(0, category_filter.length - 1);
}else{
var category_filter = "all"
}
$.get('/search_ajax/{{query}}/'+sort_by+'/'+current_items+'/'+category_filter, function(data){
$(data).appendTo("#container");
current_items = $('[class="small-3 columns"]').length;
});
}
});
}
它适用于第一个条件,但现在我想基于第二个条件,即变量infinite_scroll来禁用/启用它。 此变量在加载时“启用”或“禁用”,然后正常工作。 问题是当我用另一个jquery调用更改值时,它不起作用。 我想if if在加载时被检查一次并且它没有被再次评估,这就是为什么它不起作用。 使用jquery调用后,变量确实会改变值。
有关如何查看错误或使用其他方法的任何想法?
谢谢, 艾萨克
答案 0 :(得分:1)
是的,if
语句在页面加载后不会自动重新评估,但您可以通过在函数中包含上述代码并在每次更改{{ 1}}变量,这是解决方案:
infinite_scroll
现在,每次更改function changeSroll(current_items, infinite_scroll) {
if (current_items <= {{total_hits}} && infinite_scroll != 'disabled') {
$(window).scroll(function () {
if ($(document).height() <= $(window).scrollTop() + $(window).height()) {
var sort_by = $('#sort_by').val();
if ($('input:checkbox:checked').val()) {
var category_filter = ""
$('input:checkbox:checked').each(function() {
category_filter += "\""+$(this).val()+"\","
});
category_filter = category_filter.substring(0, category_filter.length - 1);
}else{
var category_filter = "all"
}
$.get('/search_ajax/{{query}}/'+sort_by+'/'+current_items+'/'+category_filter, function(data){
$(data).appendTo("#container");
current_items = $('[class="small-3 columns"]').length;
});
}
});
}
}
变量时,请添加以下行:
infinite_scroll
希望这可以做你想做的事。