2010-02-02 9 views
1

I chargé un fichier second.php dans first.php en utilisant la fonction de charge ajax jqueryJQUERY AJAX CHARGE Fonction Erreur

$ ("divclass "). Cliquez sur (function() { $ (" # idDiv") .load ('second.php', {id: $ (this) .attr ('id')}); // alert ("voir cliqué"); }); Le deuxième.php a chargé le deuxième contenu de php dans le premier succès de fichier .php.

mais second.php contient une fonction jquery ... dans second.php

$ (document) .ready (function() { alerte ("second document jquery");} ) ;

ce ne fonctionne pas ... et Retour ce retour javascript ne fonctionnait pas lorsque la charge dans first.php mais aussi bien travailler lorsque vous appelez directement second.php

quoi faire

Répondre

1

Votre deuxième fichier — que je présume est un fragment de HTML et non un document complet — ne va pas obtenir un événement "prêt", parce que vous êtes juste en train de modifier le DOM. Si vous avez besoin intégré Javascript pour exécuter, il suffit de mettre directement dans une balise à la fin du fragment:

<div id='stuff'> 
    <!-- ... ---> 
</div> 
<script> 
    alert("Hi I have just been loaded"); 
</script> 

jQuery fera en sorte que les pistes de bloc Javascript lorsque le fragment est ajouté au DOM.

+0

im faire ajouter, modifier, mettre à jour prog. premier i afficher la liste dans un tableau WHN je clique sur un nom particulier dans la liste, il charge les détails de la personne dans le contenu du corps sans recharger la page donc la deuxième page contient vue sur id particulier (ligne) puis venez modifier la partie lorsque vous cliquez sur l'option d'édition dans first.php (page de liste par défaut) il charge d modifier php dans le contenu du corps .. en cliquant sur mise à jour il exécute une autre fonction jquery ajax pour publier les données à mettre à jour (mise à jour par exemple .php) mon problème est le jquery dans la page d'édition pour mettre à jour la mise à jour ne fonctionne pas .. non seulement la mise à jour, tout jquery dans php chargé ne fonctionne pas .. – udhaya

+0

AJAX contenu chargé en utilisant '$ .get' et' $ .post '(aussi' $ .ajax') obtiendra l'événement "prêt". 'load' d'un autre côté supprimera tout code javascript, donc aucun code du fichier chargé ne sera exécuté. Voir mes réponses pour la solution de contournement. –

0

Le javascript dans second.php ne fonctionnera pas comme ça, pourquoi n'utilisez-vous pas simplement la fonction de succès?

$(".divclass").click(function(){ 
    $('#divid').load('second.php', { id : $(this).attr('id') }, function() { 
    alert('second document jquery'); 
    }); 
}); 
+0

il ya quelques opérations dynamiques dans second.php qui est chargé dans first.php comme cliquez sur un div particulier dans second.php – udhaya

+0

Ok, jetez un oeil à getScript() - http://api.jquery.com/jQuery. getScript / – fire

0

Utilisation $.get au lieu de load:

$(".divclass").click(function(){ 
    var elmt_id = $(this).attr('id'); 
    $.get('second.php', 
     { id: elmt_id, nbRandom: Math.random() }, 
     function(data){ 
      $("#divid").html(data); 
     }); 
}); 

Pourquoi? Parce que load va supprimer tout javascript de la page chargée. $.get mettra tout le contenu de second.php, tout code js il sera exécuté. J'utilise le code comme ci-dessus dans tout mon projet. La page chargée contient le code de bloc jQuery DOM ready, et tout a fonctionné.

Dans mon code ci-dessus, j'ajoute un second paramètre. Le but est juste d'empêcher la mise en cache dans IE. Choisissez un nom qui ne sera pas utilisé par second.php.