2014-03-26 66 views
0

我要讓像不像預訂我來,但這些代碼只執行一次,而不刷新頁面的.html()在阿賈克斯不工作

JAVASCRIPT

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#wish").click(function() { 
      var userId = "<?php echo $this->session->userdata("user"); ?>"; 
      var bookId = "<?php echo $book->bo_id; ?>"; 

      var sendData = {"user_id": userId, "book_id": bookId , "flag": this.title}; 
      $.ajax({ 
       url: "<?= base_url(); ?>bookstore/book/add_read_wish/", 
       type: "POST", 
       data: sendData, 

       success: function(data) { 

       } 
      }); 
      if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' />") { 
        $(this).attr('id', 'delete_wish'); 
        $(this).attr('title', 'حذف الكتاب من قائمة الأمنيات'); 
        $(this).replaceWith("<a id='delete_wish' class='rss' href='javascript:void(0)' title='حذف الكتاب من قائمة الأمنيات'><img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' /></a>"); 
        //this.title = "حذف الكتاب من قائمة الأمنيات"; 

       } 
     }); 


     $("#delete_wish").click(function() { 
      var userId = "<?php echo $this->session->userdata("user"); ?>"; 
      var bookId = "<?php echo $book->bo_id; ?>"; 

       var sendData = {"user_id": userId, "book_id": bookId , "flag": this.title}; 
      $.ajax({ 
       url: "<?= base_url(); ?>bookstore/book/delete_read_wish/", 
       type: "POST", 
       data: sendData, 

       success: function(data) { 

       } 
      }); 
      if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16.png' alt='' />") { 
        $(this).attr('id', 'wish'); 
        $(this).attr('title', 'أنوى قراءة هذا الكتاب'); 
        $(this).replaceWith(" <a id='wish' class='rss' href='javascript:void(0)' title='أنوي قراءة هذا الكتاب'><img src='<?= base_url() ?>global/site/images/books.website_icon-16.png' alt='' /></a>"); 
        //this.title = "حذف الكتاب من قائمة الأمنيات"; 


       } 
     }); 


    }); 
</script> 

HTML

<?php if ($book_wish == NULL) { ?> 
          <a id="wish" class="rss" href="javascript:void(0)" title="أنوي قراءة هذا الكتاب"> 
           <img src="<?= base_url() ?>global/site/images/books.website_icon-16.png" alt="" /> 
          </a> 
         <?php } else { ?> 
          <!--<div id="wish">--> 
          <a id="delete_wish" class="rss" href="javascript:void(0)" title="حذف الكتاب من قائمة الأمنيات"> 
           <img src="<?= base_url() ?>global/site/images/books.website_icon-16-presed.png" alt="" /> 
          </a> 
          <!--</div>--> 
         <?php 
         }?> 

回答

0

您在頁面加載設置點擊處理程序#delete_wish。但是稍後您將在$("#wish").click中動態創建#delete_wish鏈接。動態創建的#delete_wish鏈接不綁定到此處理程序。您需要重新綁定每個動態創建的鏈接。

(假設你分開你的#delete_wish單擊處理方法handlerFunction)

在你$("#wish").click後Ajax請求:

if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' />") { 
    $(this).attr('id', 'delete_wish'); 
    $(this).attr('title', 'حذف الكتاب من قائمة الأمنيات'); 
    $(this).replaceWith("<a id='delete_wish' class='rss' href='javascript:void(0)' title='حذف الكتاب من قائمة الأمنيات'><img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' /></a>"); 
    //bind a click handler for newly created link: 
    $('#delete_wish').click(handlerFunction); 
} 
0

的問題是replaceWith jQuery函數。它基本上用新的元素替換你的原始元素與'點擊'綁定。

$(this).replaceWith(....) 

一旦替換,新元素不會聽取點擊事件。

我建議在包裝你的兩個S,移動的標識中,以類似:

<span id="wish" ><a id="wish" class="rss" ...>..</a> </span> 

那你還不需要更改JavaScript代碼(注意,該ID =「願望」需要在替換中被刪除)