$(document).ready() wird nicht ausgeführt, nach f:ajax render
Habe ich einige jQuery
code, der läuft auf jeden $(document).ready()
Veranstaltung.
Ich habe auch einige <f:ajax>
tags, die re-rendering von einigen teilen der Seite.
Ich bemerkt, dass wenn ich rerender eine Komponente, die $(document).ready()
nicht genannt.
Gibt es eine Möglichkeit zum ausführen von javascript-code nach jedem <f:ajax>
rerendering?
(Ich kann technisch verwenden Sie die onevent
- tag, aber das ist die ungünstige Lösung für mich, da werde ich haben, rufen Sie die Funktion auf jeden <f:ajax>
)
Nur zur Veranschaulichung, dies ist der jQuery-Code:
$(document).ready(function() { ...CODE... }
Und die JSF-code:
<f:ajax event="click" render=":someComponentID"/>
Dank!
UPDATE Diese Frage könnte ein Duplikat des diese eine. Ich freue mich in es.
UPDATE2
Das ist problemlos lösbar mit der JSF-Javascript-event-Bindung:
jsf.ajax.addOnEvent(function(data){
if (data.status === 'success') {
//Do stuff here
}
}
Lesen Sie mehr darüber unter der JSF-2-Referenz
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
$(document).ready()
event feuert einmal, wenn der DOM vollständig geladen wurde aus dem anfänglichen laden.Einen ajax event ändern kann, den DOM, aber es muss nicht die Seite neu laden, damit die
$(document).ready()
nicht wieder Feuer.Ich bemerkte, wie Google dieses problem gelöst in Gmail ist die Verwendung eine hohe Frequenz timer.
Ereignisse und Listener..
Haben, Lesen Sie auf Ajax-tag-Ereignisse und Listener
onevent
Attribut, sondern dielistener
Attribut. Sowieso, jsf bieten eine callback-Modell (Veranstaltung/Zuhörer).. weiß nicht, warum Sie nicht wollen, es zu benutzen.. Sie wollen rufen Sie die Funktion auf jedenf:ajax
.. richtig ?h:outputScript
- und targeting-mit derrender
Attribut desajax
Arbeit nennt ? (und in diesem Skript machen, was Sie wollen..)