Skip to content

Commit 004eaa2

Browse files
author
Philip Morkisch
committed
Optimized script and fixed error in regex replacement
1 parent 7b2204a commit 004eaa2

File tree

1 file changed

+33
-36
lines changed

1 file changed

+33
-36
lines changed

js/byscripts_ajax_posts_loader.js

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,60 @@
11
jQuery(document).ready(function($) {
22

3-
// The number of the next page to load (/page/x/).
4-
var page_number_next = parseInt(byscripts_ajax_posts_loader.page_number_next);
5-
6-
// The maximum number of pages the current query can return.
7-
var page_number_max = parseInt(byscripts_ajax_posts_loader.page_number_max);
8-
9-
// The link of the next page of posts.
10-
var page_link_model = byscripts_ajax_posts_loader.page_link_model;
3+
var page_number_next = parseInt(byscripts_ajax_posts_loader.page_number_next), // The number of the next page to load (/page/x/).
4+
page_number_max = parseInt(byscripts_ajax_posts_loader.page_number_max), // The maximum number of pages the current query can return.
5+
page_link_model = byscripts_ajax_posts_loader.page_link_model, // The link of the next page of posts.
6+
$content = $(byscripts_ajax_posts_loader.content_css_selector), // The content Element posts are inserted to
7+
$pagination = $(byscripts_ajax_posts_loader.pagination_css_selector), // The wordpress default pagination
8+
$loaderTrigger;
119

1210
/**
1311
* Replace the traditional navigation with our own,
1412
* but only if there is at least one page of new posts to load.
1513
*/
1614
if(page_number_next <= page_number_max) {
1715
// Insert the "More Posts" link.
18-
$(byscripts_ajax_posts_loader.content_css_selector)
19-
.append('<div id="byscripts_ajax_posts_loader_placeholder_'+ page_number_next +'"></div>')
20-
.append('<div id="byscripts_ajax_posts_loader_trigger">{loadmore}</div>'.replace('{loadmore}', byscripts_ajax_posts_loader.load_more_str));
16+
$content.append('<div id="byscripts_ajax_posts_loader_trigger">{loadmore}</div>'.replace('{loadmore}', byscripts_ajax_posts_loader.load_more_str));
17+
$loaderTrigger = $('#byscripts_ajax_posts_loader_trigger');
2118

2219
// Remove the traditional navigation.
23-
$(byscripts_ajax_posts_loader.pagination_css_selector).remove();
20+
$pagination.remove();
2421
}
2522

2623

2724
/**
2825
* Load new posts when the link is clicked.
2926
*/
30-
$('#byscripts_ajax_posts_loader_trigger').click(function() {
31-
27+
$loaderTrigger.click(function() {
28+
var next_link = page_link_model;
29+
3230
// Are there more posts to load?
3331
if(page_number_next <= page_number_max) {
34-
32+
3533
// Show that we're working.
3634
$(this).text(byscripts_ajax_posts_loader.loading_str);
3735

38-
var next_link = page_link_model.replace(/9999999999/, page_number_next);
39-
40-
$('#byscripts_ajax_posts_loader_placeholder_'+ page_number_next).load(next_link + ' .post',
41-
function() {
42-
// Update page number and next_link.
43-
page_number_next++;
44-
45-
// Add a new placeholder, for when user clicks again.
46-
$('#byscripts_ajax_posts_loader_trigger')
47-
.before('<div id="byscripts_ajax_posts_loader_placeholder_'+ page_number_next +'"></div>')
48-
49-
// Update the button message.
50-
if(page_number_next <= page_number_max) {
51-
$('#byscripts_ajax_posts_loader_trigger').text(byscripts_ajax_posts_loader.load_more_str);
52-
} else if(byscripts_ajax_posts_loader.remove_link_after_last_result) {
53-
$('#byscripts_ajax_posts_loader_trigger').remove();
54-
} else {
55-
$('#byscripts_ajax_posts_loader_trigger').text(byscripts_ajax_posts_loader.no_more_str);
56-
}
36+
// Load more posts
37+
$.ajax({
38+
type : 'POST',
39+
url : next_link
40+
}).done(function(data) {
41+
page_number_next++;
42+
43+
$loaderTrigger.before($(data).find(byscripts_ajax_posts_loader.content_css_selector).remove(byscripts_ajax_posts_loader.pagination_css_selector).html());
44+
$(byscripts_ajax_posts_loader.pagination_css_selector).remove();
45+
46+
if(page_number_next <= page_number_max) {
47+
$loaderTrigger.text(byscripts_ajax_posts_loader.load_more_str);
48+
} else if(byscripts_ajax_posts_loader.remove_link_after_last_result) {
49+
$loaderTrigger.remove();
50+
} else {
51+
$loaderTrigger.text(byscripts_ajax_posts_loader.no_more_str);
5752
}
58-
);
53+
}).fail(function() {
54+
$loaderTrigger.text(byscripts_ajax_posts_loader.error_str);
55+
});
5956
}
6057

6158
return false;
6259
});
63-
});
60+
});

0 commit comments

Comments
 (0)