1
1
jQuery ( document ) . ready ( function ( $ ) {
2
2
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 ;
11
9
12
10
/**
13
11
* Replace the traditional navigation with our own,
14
12
* but only if there is at least one page of new posts to load.
15
13
*/
16
14
if ( page_number_next <= page_number_max ) {
17
15
// 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' ) ;
21
18
22
19
// Remove the traditional navigation.
23
- $ ( byscripts_ajax_posts_loader . pagination_css_selector ) . remove ( ) ;
20
+ $pagination . remove ( ) ;
24
21
}
25
22
26
23
27
24
/**
28
25
* Load new posts when the link is clicked.
29
26
*/
30
- $ ( '#byscripts_ajax_posts_loader_trigger' ) . click ( function ( ) {
31
-
27
+ $loaderTrigger . click ( function ( ) {
28
+ var next_link = page_link_model ;
29
+
32
30
// Are there more posts to load?
33
31
if ( page_number_next <= page_number_max ) {
34
-
32
+
35
33
// Show that we're working.
36
34
$ ( this ) . text ( byscripts_ajax_posts_loader . loading_str ) ;
37
35
38
- var next_link = page_link_model . replace ( / 9 9 9 9 9 9 9 9 9 9 / , 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 ) ;
57
52
}
58
- ) ;
53
+ } ) . fail ( function ( ) {
54
+ $loaderTrigger . text ( byscripts_ajax_posts_loader . error_str ) ;
55
+ } ) ;
59
56
}
60
57
61
58
return false ;
62
59
} ) ;
63
- } ) ;
60
+ } ) ;
0 commit comments