2011-07-14 12 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").Click(...)を呼び出すと、jQueryは今すぐ存在するid clickMeAllを持つ要素を検索し、それにイベントを割り当てます。

後で別のHTMLコードに置き換えると、イベントは新しいDOMノードに自動的に再割り当てされません。

2種類の溶液:

  • 使用jQueryのライブイベント
  • 置き換えるちょうど/ショー#clickMeAllと#clickMeRegularを非表示にしないでください。彼らはいつも存在していますが、そのうちの1つだけが見えます。 (よりよい解決策)。
+0

私は隠しを行います。ありがとう –

1

jQuery liveを使用することを検討してください。

+0

または[代理人](http://api.jquery.com/delegate/) – genesis

+0

を願っています。ステファンは隠れているとショーのためにそれを持っていた。 –

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>"); 
    }); 

が正常に動作します私はそれは、ライブで感謝+1をworkes

関連する問題