我对这里发生的事感到困惑,我有11个帖子,其中3个最初加载,每次滚动到页面底部时加载3个,直到显示所有11个。这很好。
当我单击按钮并再次将前3个帖子动态加载到页面上时,会出现问题。这是通过.html(数据)加载的。
我在名为档案的“页面”上这样做。
就好像存档页面知道我之前显示过所有11个帖子而拒绝重新开始,除非我刷新页面。
如何重置循环,或告诉wordpress我想再次从第3篇帖子开始?
jQuery(document).ready(function($){
$("a.sort-all").bind("click", function(e) {
load_posts(this);
e.preventDefault();
});
function load_posts() {
var ajax_url = $('.sort-all').attr('data-all-url');
$.ajax({
dataType: "HTML",
url: ajax_url,
type:'POST',
data:{
action: 'data_click_all',
offset: offset
},
success:function(data) {
$('#content').html(data);
}
});
}
var ajax_url = $('.sort-all').attr('data-all-url');
var offset = 0;
$('#content').waypoint(function(direction) {
if(direction === 'down'){
offset = parseInt(offset) + 3;
$.ajax({
dataType: "HTML",
url: ajax_url,
type:'POST',
data:{
action: 'data_scroll_all',
offset: offset
},
success:function(data) {
$('#content').append(data);
$.waypoints('refresh');
}
});
}
}, {
offset: 'bottom-in-view'
});
});
if (!class_exists('load_posts')) {
class load_posts {
/**
* PHP 4 Compatible Constructor
*/
function load_posts(){$this->__construct();}
/**
* PHP 5 Constructor
*/
function __construct(){
add_action('wp_ajax_data_scroll_all', array(&$this, 'data_scroll_all'));
add_action('wp_ajax_nopriv_data_scroll_all', array(&$this, 'data_scroll_all'));
//----//
add_action('wp_ajax_data_click_all', array(&$this, 'data_click_all'));
add_action('wp_ajax_nopriv_data_click_all', array(&$this, 'data_click_all'));
}
function data_click_all(){
global $post;
$offset = $_POST['offset'];
$args = array('posts_per_page' => 3, 'offset' => $offset, 'category__not_in' => 1,'orderby' => 'date');
$myposts = get_posts( $args );
foreach( $myposts as $post ) {
setup_postdata($post);
get_template_part( 'content-archive' );
} wp_reset_query();
die('');
}
function data_scroll_all(){
global $post;
$offset = $_POST['offset'];
$args = array('posts_per_page' => 3, 'category__not_in' => 1, 'offset' => $offset, 'orderby' => 'date');
$myposts = get_posts( $args );
foreach( $myposts as $post ) {
setup_postdata($post);
get_template_part( 'content-archive' );
} wp_reset_query();
die('');
}
}
}
if (class_exists('load_posts')) {
$newload_posts = new load_posts();
}
答案 0 :(得分:0)
当您单击按钮并再次将前3个帖子动态加载到页面上时,您必须重置变量偏移量。还要刷新航点。
$("a.sort-all").bind("click", function(e) {
offset=0;
load_posts(this);
$.waypoints('refresh');
e.preventDefault();
});
如果它不起作用,可能你的帖子数量没有错误,但是另一个错误阻止一切工作。
请输入航点时添加提醒
$('#content').waypoint(function(direction) {
alert("current: "+offset);
///...