2011-07-14 52 views
0

嗨即時嘗試替換鏈接,如果我點擊這個其他鏈接。但我不能得到點擊工作,當我添加jQuery的鏈接replace()html();。我即將做錯了什麼?點擊將不會工作時放置與jQuery的.html()或.replace()

這是我嘗試在代碼中使用

$(document).ready(function() { 
     var countTotal = $('#myTable tr').length; 
     $("#hideTotalCount").val(countTotal); 

     $('#clickMeAll').click(function() { 
      var totalCount = $("#hideTotalCount").val() - 1; 
      $('#myTable').paginateTable({ rowsPerPage: totalCount, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
      $('#placeLink').replaceWith("<a href='#' id='clickMeRegular'>Back to regular</a>"); 
     }); 

     $('#clickMeRegular').click(function() { 
      var totalCount = $("#original").val(); 
      $('#myTable').paginateTable({ rowsPerPage: totalCount, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
      $('#placeLink').replaceWith("<a href='#' id='clickMeAll'>ViewAll</a>"); 
     }); 

     $('#myTable').paginateTable({ rowsPerPage: 5, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
     $('#placeLink').html("<a href='#' id='clickMeAll'>ViewAll</a>"); 
    }); 

#placeLink只是一個普通的<span>

也許有人知道的東西,可以把我在正確的方向?謝謝

回答

1

替換DOM節點沒有附加的點擊事件的問題。當你調用$(「#clickMeAll」)時,點擊(...),jQuery搜索一個id爲clickMeAll的元素,它現在就存在併爲它分配一個事件。

如果稍後將其替換爲其他一些HTML代碼,則該事件不會自動重新分配給新的DOM節點。

兩個解決方案:

  • 使用jQuery的現場活動
  • 不要更換,但只是隱藏/顯示#clickMeAll和#clickMeRegular。它們都存在,但只有其中一個是可見的。 (更好的解決方案)。
+0

我會做隱藏的。謝謝 –

1

考慮使用jQuery live

+0

或[代表](http://api.jquery.com/delegate/) – genesis

+0

它用活workes,感謝+1。由於隱藏和表演,steffen得到了它。 –

0
$(document).ready(function() { 
     var countTotal = $('#myTable tr').length; 
     $("#hideTotalCount").val(countTotal); 

     $('body').delegate('#clickMeAll', 'click' ,function() { 
      var totalCount = $("#hideTotalCount").val() - 1; 
      $('#myTable').paginateTable({ rowsPerPage: totalCount, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
      $('#placeLink').replaceWith("<a href='#' id='clickMeRegular'>Back to regular</a>"); 
     }); 

     $('body').delegate('#clickMeRegular', 'click' ,function() { 

      var totalCount = $("#original").val(); 
      $('#myTable').paginateTable({ rowsPerPage: totalCount, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
      $('#placeLink').replaceWith("<a href='#' id='clickMeAll'>ViewAll</a>"); 
     }); 

     $('#myTable').paginateTable({ rowsPerPage: 5, pager: '.pageNumbersOnly', maxPageNumbers: 4 }); 
     $('#placeLink').html("<a href='#' id='clickMeAll'>ViewAll</a>"); 
    }); 

將正常工作,我希望