2014-01-11 58 views
0

HTML使用jQuery POST功能,返回的鏈接不能有它addClass函數運行

   <div id="add_to_library" class="add-library-wrapper"> 
        <a href="javascript:void(0)" class="library-select" id="library-status-select" >Click</a> 

        <div class="dropdown"> 
         <ul> 
          <li><a onclick="create_library_entry('Complete', 123, 124);" href="javascript:void(0)">Stuff</a></li> 
         </ul> 
        </div> 

jQuery的

    $('#library-status-select').click(function() { 
         $(this).toggleClass('open'); 
         $('.dropdown').toggleClass('open');       
        });  

        function create_library_entry(status, user_id, anime_id) { 

         jQuery('#custom_lightbox').html(''); 

         jQuery.post("/wp-content/themes/phanime/custom_functions/create_single_libraryEntry.php", {user_id : user_id, anime_id : anime_id, status : status}, function(data) { 
           //this is your response data from serv 
          console.log(data); 
          jQuery('#add_to_library').html(data); 

         });       

        } 

所以,當我在anchor標籤單擊與library-status-select的ID它顯示了與類dropdown的div。通過添加一個open類等等。一旦下拉顯示,它也有一個鏈接,做一個jQuery發佈。 jQuery發佈返回它的結果,在#add_to_library id中包含鏈接。該鏈接被從jQuery.post返回的另一個鏈接取代。這個鏈接看起來像這樣...

<a href="javascript:void(0)" class="library-select" id="library-status-select" >Click me updated</a> 

它本質上與同一類/ ID相同的鏈接,但由於某些原因,jQuery.addClass/removeClass不再工作是從jQuery.post返回的鏈接。換句話說,open類不會被添加。如果有人確切地知道爲什麼發生這種情況,這將是非常有幫助的。

回答

1

由於要更換你正在處理動態內容的競賽,以便使用event delegation

$('#add_to_library').on('click', '#library-status-select', function() { 
    $(this).toggleClass('open'); 
    $('.dropdown').toggleClass('open'); 
}); 
+0

真棒,不知道有這樣的事情。 – Maaz