2009-06-12 7 views
0

Je parviens pas à utiliser jQuery avec page enfantappelant jquery de la page ajax

charge Parent.html Child.html comme ceci: à savoir l'utilisateur clique

<a href="#" id="n-email"> 

JQuery

$('a#n-email').click(function() { 


    $.ajax({ 
     type: "GET", 
     url: "/scripts/contact.js", 
     dataType: "script" 
    }); 

    $('#content').load("child.htm");    

}); 

contact.js

$(function() { 

    alert ("contact js hit"); 
} 

Cela fonctionne parfois. Mais je ne peux pas établir la logique pourquoi cela fonctionne. J'ai également essayé d'ajouter ajouter une référence à Jquery sur le gestionnaire également. J'ai l'impression de manquer un truc ici.

Merci à jake + lucus. J'ai le travail suivant. A besoin d'un refactoring, mais fonctionne

$ ('# n-email) cliquez sur (function() { var e = this;. reset (e);

var mypage = $('#contentemail').load("email.php"); 

    $.ajax({ 
      type: "GET", 
      url: "/scripts/contact.js", 
      dataType: "script", 
      success: function(mypage) 
      { 
       $(document).append(mypage); 
      } 
     }); 

    $('#contentemail').show();    

}); 
+0

J'ai corrigé une faute de frappe (j'espère). À l'origine, vous aviez l'ID de la balise d'ancrage en tant que "a-mail", mais vous l'appelez "n-email" dans votre js. – tvanfosson

+0

qu'est-ce qui fonctionne à l'occasion? l'alerte()? ou le .load ("child.htm")? – jrharshath

+0

petit conseil: au lieu de $ ('a # n-email'), il serait plus rapide d'écrire $ ('# n-email') – jrharshath

Répondre

2

D'abord, vous devez . mettre une fonction de rappel dans la ajax jQuery en utilisant la propriété de succès Deuxièmement, vous cant mettez simplement javascript en un élément HTML qui fonctionnent doenst vous pouvez essayer d'utiliser eval Essayez ce code comme début:...

$('a #n-email').click(function() { 
    $.ajax({ 
      type: "GET", 
      url: "/scripts/contact.js", 
      dataType: "script", 
      success: function(value){eval(value)} 
     });  
}); 
+0

merci lucas. ça vous dérange d'expliquer comment l'eval fonctionnerait? Peut-être que je pourrais être plus clair ce que je suis en train de faire. - Parent charge enfant - enfant contient un formulaire de contact dont j'ai besoin d'avoir une validation, etc. – frosty

+0

eval exécuter javascript à partir du texte. Dans ce cas, c'est le texte qui provient de la réponse ajax. – Lucas

1

Utilisation de $ (do cument) .append (content) supprimera toutes les balises de script du contenu et tentera de les évaluer. Donc vous pouvez aller

$('a #n-email').click(function() { 
    $.ajax({ 
      type: "GET", 
      url: "/scripts/contact.js", 
      dataType: "script", 
      success: function(result) 
      { 
       $(document).append(result); 
      } 
     });  
}); 
+0

merci jake, des commentaires très utiles. – frosty