2010-05-25 6 views
3

J'essaye d'ajouter un événement de clic sur l'élément qui est de retour du serveur par l'intermédiaire d'ajax. Apparemment, je dois joindre mon fichier js dans ma réponse de retour au lieu de mon script principal. Est-ce la meilleure pratique? Dois-je créer le fichier js séparé pour ajouter un événement sur le texte de retour?Jquery et Ajax Post numéro

Exemple:

Mon Jquery - selectWeek.js

$(document).ready(function(){ 

//handle ajax.. 
var url="sendSchedule.php"; 
$.post(
url, 
{week:input}, 
function(responseText){ 

    $("#ajax").html(responseText); 

    }, 
    "html" 

); 

// click on #add button 

    $("#add").click(function(){ 
//do something 
return false; 
    }); 
}); 

Ma page principale

<script type="text/javascript" src="JS/selectWeek.js"></script> 


</HEAD> 
<BODY> 
//the code that trigger ajax is omitted 

<div id=ajax> 
    //the response text will be inserted here 
</div> 


</BODY> 
</HTML> 
réponse

du serveur

// display html (omit) 


// Do I have to attach the same js file to let #add listen the event? 
<script type="text/javascript" src="JS/selectWeek.js"></script> 

<form> 
    <input type='button' id='add' value='add'/> 
</form> 

Je ne suis pas sûr si je fais mon q uestion claire. Je veux savoir si j'ai besoin d'ajouter des événements sur le texte de retour. Dois-je ajouter un lien de fichier js sur le texte de retour ou il y a un moyen de le faire sur la page principale. Je veux juste écrire mon code js sur la page principale et le garder simple. Merci pour toute réponse.

Répondre

1

Essayez jquery live events. Ces événements vous permettent d'attacher des événements au dom à mesure que de nouveaux éléments sont ajoutés. Par exemple, je lance ma page et cette page appelle un ajax get/post qui insère un div avec l'identifiant "mydiv" dans le dom. Mon événement en direct accrochera la div nouvellement ajoutée. De cette façon, vous pouvez conserver tout le javascript nécessaire pour une seule page dans une bibliothèque. Regardez-le c'est très utile.

+0

Merci. Informations très utiles – FlyingCat

1

Vous devez appeler votre fichier js à la page comprennent entrée <input type='button' id='add' value='add'/>

Sinon le code $("#add").click(function(){ ne trouvera pas l'élément appelé #add

+0

Je vois. Merci pour la réponse. Je crois que la réponse de John est bonne aussi. – FlyingCat