html - Applying jQuery code to AJAX loaded content -


i have these html lines

<h1 class="trigger">headline one</h1> <div class="toggle_container">     body text 1 </div> 

and jquery code in <head> section of site

$(document).ready( function() {     $('.trigger').not('.trigger_active').next('.toggle_container').hide();     $('.trigger').click( function() {         var trig = $(this);         if ( trig.hasclass('trigger_active') ) {             trig.next('.toggle_container').slidetoggle('slow');             trig.removeclass('trigger_active');         } else {             $('.trigger_active').next('.toggle_container').slidetoggle('slow');             $('.trigger_active').removeclass('trigger_active');             trig.next('.toggle_container').slidetoggle('slow');             trig.addclass('trigger_active');         };         return false;     }); }); 

after page loaded , jquery code applied, html output looks this:

<h1 class="trigger">headline one</h1> <div class="toggle_container" style="display: none;">      body text 1 </div> 

so far works fine. here comes problem: when i'm loading new html block ajax - looks this:

<h1 class="trigger">headline two</h1> <div class="toggle_container">     body text 2 </div> 

... doesn't rendered above jquery code. how can apply jquery code new loaded html block?

edit: here's ajax

jquery(document).ready(function($) {      // number of next page load (/page/x/).     var pagenum = parseint(pbd_alp.startpage) + 1;      // maximum number of pages current query can return.     var max = parseint(pbd_alp.maxpages);      // link of next page of posts.     var nextlink = pbd_alp.nextlink;      /**      * replace traditional navigation our own,      * if there @ least 1 page of new posts load.      */     if(pagenum <= max) {         // insert "more posts" link.         $('#content')             .append('<div class="pbd-alp-placeholder-'+ pagenum +'"></div>')             .append('<p id="pbd-alp-load-posts"><a href="#">↓ archive</a></p>');          // remove traditional navigation.         $('.navigation').remove();     }       /**      * load new posts when link clicked.      */     $('#pbd-alp-load-posts a').click(function() {            // there more posts load?         if(pagenum <= max) {              // show we're working.             $(this).text('...');              $('.pbd-alp-placeholder-'+ pagenum).load(nextlink + ' .post',                 function() {                     // update page number , nextlink.                     pagenum++;                     nextlink = nextlink.replace(/\/page\/[0-9]?/, '/page/'+ pagenum);                      // add new placeholder, when user clicks again.                     $('#pbd-alp-load-posts')                         .before('<div class="pbd-alp-placeholder-'+ pagenum +'"></div>')                      // update button message.                     if(pagenum <= max) {                         $('#pbd-alp-load-posts a').text('older entries');                     } else {                         $('#pbd-alp-load-posts a').text('all items loaded.');                     }                 }             );         } else {             $('#pbd-alp-load-posts a').append('.');         }             return false;     }); }); 

after ajax content appended dom want run following piece of code again:

$('.trigger').not('.trigger_active').next('.toggle_container').hide(); 

then want make sure use event delegation clicking work on dynamically inserted content:

$(document).on('click', '.trigger', function() {     //the rest of code }); 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -