Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
879 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU] injection de jquery

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] injection de jquery

n°2101612
naeco
Buddy Rich Big Band
Posté le 14-09-2011 à 23:18:21  profilanswer
 

Bonsoir à tous,
J'ai un petit soucis :o
 
D'un coté, j'ai ce code qui fonctionne parfaitement (il active ou désactive le bouton en fonction de la valeur du select):

Code :
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. /**
  4. Tous les chargement onLoad()
  5. */
  6. $(document).ready(function() {
  7. $("#liste_historique" ).change(function() {
  8.  console.debug("version selectionn&eacute; changée !" );
  9.  console.debug($("select[name='liste_historique'] option:selected" ).val());
  10.  //$("#ecraser_version" ).removeAttr('disabled');
  11.  if($("#idVersionArticle" ).val() != $("select[name='liste_historique'] option:selected" ).val()) {
  12.   console.debug("oui !" );
  13.   $("#ecraser_version" ).removeAttr('disabled');
  14.  } else {
  15.   console.debug("non !" );
  16.   $("#ecraser_version" ).attr('disabled', 'disabled');
  17.  }
  18. });
  19. });
  20. //]]>
  21. </script>
  22. </head><body>
  23. <input type="hidden" id="idVersionArticle" name="idVersionArticle" value="20" />
  24. <select id="liste_historique" class="liste_historique" name="liste_historique">
  25. <option value="10">2011-09-08 15:31:00</option>
  26. <option selected="selected" value="20">2011-09-14 19:10:27(version actuelle)</option>
  27. </select>
  28. <input id="ecraser_version" type="button" value="écraser la version actuelle avec cette version" disabled="disabled">


 
 
D'un autre coté, je sais que si j'ajoute des éléments dans ma page via la fonction $.load() , puis affecte un comportement via jquery dans du javascript mis à la fin de cet HTML ajouté par $.load(), les comportements fonctionnent.
 
Maintenant mon souci :
 
j'ai besoin de mettre en place le même comportement, mais les éléments arrivent par de l'ajax JSON :
Le code javascript suivant :

Code :
  1. function recupererArticle(id, urlCible){
  2. if(id != "" ) {
  3.  $("#idArticle" ).val(id);
  4. } else {
  5.  id = $("#idArticle" ).val();
  6. }
  7. console.debug("fonction recupererArticle", urlCible+" - "+id);
  8. $.ajax({
  9.  //url: "article_print.ajax.php?idArticle="+id, // url de la page à charger
  10.  url: urlCible+"?idArticle="+id, // url de la page à charger
  11.  cache: false, // pas de mise en cache
  12.  dataType: "json",
  13.  success:function(jsonRetour){ // si la requêté est un succès
  14.   console.debug(jsonRetour);
  15.   $("#header_article" ).html(jsonRetour.header);
  16.   $("#main_article" ).html(jsonRetour.article);
  17.   $("#footer_article" ).html(jsonRetour.footer);
  18.   $("#idVersionArticle" ).html(jsonRetour.idVersionArticle);
  19.  },
  20.  error:function(XMLHttpRequest, textStatus, errorThrows){ // erreur durant la requete
  21.   value_html ="attention, erreur durant la requette, veuillez réessayer ultérieurement";
  22.  }
  23. });
  24. }


 
...injecte le select et le bouton,
et le code suivant :
 

Code :
  1. function createEditor()
  2. {
  3. console.debug("fonction createEditor" );
  4. recupererArticle("", 'article_edit.ajax.php');
  5. /**
  6. Permet sur l'écran de modification d'un article, quand la combobox #liste_historique change sa valeur,
  7. de désactiver le button #ecraser_version si la version affichée est la version actuellement affichée, et l'activer sinon.
  8. **/
  9. $("#liste_historique" ).change(function() {
  10.  console.debug("version selectionn&eacute; changée !" );
  11.  //TODO corriger !
  12.  if($("#idVersionArticle" ).val() != $("select[name='liste_historique'] option:selected" ).val()) {
  13.   $("#ecraser_version" ).removeAttr('disabled');
  14.  } else {
  15.   $("#ecraser_version" ).attr('disabled', 'disabled');
  16.  }
  17. });


 
...est là dès le début, et permet d'appeler la première fonction, puis d'ajouter un comportement au bouton.
 
mais cela ne fonctionne plus... il ne rentre pas du tout dedans.
 
quelqu'un aura une idée ? (autre que me proposer 4 $.load() à la place de mon unique appel ajax, car le traitement en php doit être fait en une seule fois)
 
Merci de vos idées !


Message édité par naeco le 16-09-2011 à 08:19:26
mood
Publicité
Posté le 14-09-2011 à 23:18:21  profilanswer
 

n°2101624
David Bori​ng
Posté le 15-09-2011 à 07:10:17  profilanswer
 

Tu dois employer "live"
http://api.jquery.com/live/

n°2101764
naeco
Buddy Rich Big Band
Posté le 15-09-2011 à 22:49:04  profilanswer
 

En effet, merci beaucoup !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU] injection de jquery

 

Sujets relatifs
Liste jquery sous IE[RESOLU] Jquery et retour d'Ajax
Slider plein ecran - probleme IE - besoin d'aide[Résolu][jquery]Copier le contenu d'une cellule TD
[RESOLU][Javascript] Effet slidetoggle jquery dans un tableau[jquery] Rules : Valeur Max d'un champs en rapport avec un autre champ
Autocomplete jQuery UI avec source externeAutocomplete jquery
[JQuery] Open Slide MenujQuery UI tab en conflit avec greybox
Plus de sujets relatifs à : [RESOLU] injection de jquery


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR