10
votes

JQUERY Event après la fonction HTML ()

Y a-t-il un moyen de lancer un événement après la cuisson HTML ()? Tels que: xxx

ceci ne fonctionne pas.

EDIT: Je le demande parce que je veux faire peu de choses (un autre appel) avec les informations provenant de l'appel ... Je voulais simplifier l'exemple ... Je suppose que les programmeurs veulent toujours savoir pourquoi ...

Voici donc l'exemple mis à jour xxx < / p>


0 commentaires

5 Réponses :


0
votes

non, mais il n'y a aucune raison pour laquelle vous ne pouviez pas faire cela: xxx


2 commentaires

Eh bien, je vais exactement cela ... Néanmoins, les GetRèglions sont lancées avant que les données ne soient entièrement chargées et que l'ID saisit n'est donc pas le bon.


@ user903645 Vous avez un autre bug qui se passe, vous devez sortir n'importe quoi après .html () , puis fouettez le DOM Inspecteur et vérifiez que le HTML était correct.



2
votes

html () code> est une opération synchrone, pas un événement, et il n'accepterait donc pas logiquement un rappel.

Il suffit de mettre votre code après cela: P>

$('container').html(data);
alert('test');


2 commentaires

Je ne vois toujours pas le besoin d'un rappel. HTML () est synchrone - il n'y a pas besoin (en effet, aucun moyen) pour un rappel après l'informatique, car il n'y a pas de concept de rappel dans des opérations synchrones. Pourquoi ne pouvez-vous pas simplement faire des choses après cela, comme nous l'avons tous dit?


lol encore non .. j'ai besoin du HTML (données) pour obtenir l'identifiant correct. Je fais déjà ce que vous dites tous les gars, mais l'identifiant saisi n'est pas le bon ... J'ai besoin de la fonction pour saisir la bonne pièce d'identité et il n'est pas possible avant que HTML (données) soit complètement effectué.



2
votes

Cette syntaxe peut également vous intéresser:

$(selector).html(function(index,oldHTML){
    alert("test");
    return data;
});


0 commentaires

1
votes

Vous pouvez inclure le code JavaScript dans votre réponse HTML. Un exemple en ligne: xxx

mettrait à jour la DIV et exécuterait également le code.


0 commentaires

22
votes

Oui, vous pouvez ...

// create a reference to the old `.html()` function
var htmlOriginal = $.fn.html;

// redefine the `.html()` function to accept a callback
$.fn.html = function(html,callback){
  // run the old `.html()` function with the first parameter
  var ret = htmlOriginal.apply(this, arguments);
  // run the callback (if it is defined)
  if(typeof callback == "function"){
    callback();
  }
  // make sure chaining is not broken
  return ret;
}

// test it all works as expected (including chaining)
$("#mything").html("<div>My Thing</div>",function(){
  console.log("Just did my thing");
}).css({color: 'red'})


3 commentaires

Moyen de promouvoir la programmation accidentelle. Vous êtes complètement mal compris ce qui se passe, cela n'a pas corrigé votre code, mais un changement accidentel que vous avez appliqué qui n'était pas présent avant. J'essaie simplement de souligner qu'il est toujours avantageux de comprendre les vraies raisons du comportement de Code comme ça.


J'aime bien la centaine de singes approche de programmer moi-même - peut-être pas le plus efficace, mais beaucoup plus gratifiant quand il vient, ~)


J'ai commencé à appliquer cette réponse à une autre question, mais devait apporter des changements sur le chemin de ne pas casser .html () pour aller chercher le contenu (et ne pas casser la chaîne). Si cela vous intéresse: jsfiddle.net/ga2zv :)