2009-11-21 2 views
0

Je veux utiliser jquery à l'intérieur des données retournées par ajax en utilisant « innerHtml » .. regarder ici,utilisation jquery intérieur Returnd de données par ajax en utilisant « innerHtml »

<a href=\"#\" 
onclick=\"$.post('". $url ."', {'t' : 't'}, function(data){ 
     $('content_rows').attr('innerHTML',data);}); " . $this->js_rebind .";return false;\">" 
$text .'</a>'; 

ce lien fait déplacer entre les pages par ajax "en rechargeant la div qui contient les données", sans - bien sûr - recharger toute la page. comme ceci:

<div id="content_rows"> 
rows from mysql database 
</div> 

maintenant tout est Ok, mais, utiliser "Plugin detailsRow" comme ceci:

<script type="text/javascript"> 
$(document).ready(function() { 
$('#rows').detailsRow('admin/blog/detailsRow',{ 
    data:{"id":"id"} , 
     dataType: "script" 
     }); 
}); 
</script> 

ce plugin fait tous les TR/ligne dans la table obtenir plus de détails par clic (+ -) .. y aller: http://webworkflow.co.uk/plugins/detailsRow/

maintenant ce plugin fonctionne très bien dans la première page (avant la div rechargent par jquery) mais après le rechargement de la div et dans l'autre pag es ou aussi quand je vais revenir à la première page il ne fonctionne pas .. je mets le code à l'intérieur content_rows div comme ceci:

<div id="content_rows"> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    $('#rows').detailsRow('admin/blog/detailsRow',{ 
     data:{"id":"id"} , 
      dataType: "script" 
      }); 
    }); 
    </script> 
</div> 

mais aussi ne fonctionne pas ..

Répondre

0

Il Il semble que vous ayez besoin d'appeler la fonction $.detailsRow() pour modifier les éléments DOM nouvellement ajoutés que vous créez dans le rappel à partir de la requête Ajax. Il suffit d'ajouter une ligne à la fonction de rappel pour $.post() comme ceci:

$.post('". $url ."', {'t' : 't'}, 
    function(data){ 
     $('content_rows').attr('innerHTML',data); 
     $('#rows').detailsRow('admin/blog/detailsRow', 
      { 
       data:{"id":"id"} , 
       dataType: "script" 
      } 
     ); 
    } 
); 

Ou vous pouvez séparer l'appel à $.detailsRow() en une fonction distincte et l'utiliser comme le rappel pour $(document).ready() et appeler à partir du rappel $.post().

Questions connexes