jQuery $ (document) .ready () wird zweimal ausgelöst
Also ich habe zu sichten, um im web zu versuchen, um herauszufinden, whats going on hier, und ich habe nicht in der Lage zu bekommen eine konkrete Antwort.
Habe ich ein $(document).bereit auf meiner Website, die Nähte mehrmals ausgeführt, unabhängig von dem code, der ist drin.
Ich gelesen habe, bis auf die bug-reports für jQuery über wie die .ready-Ereignis ausgelöst wird, zweimal, wenn Sie eine Ausnahme, die Auftritt, in Ihrem statement. Aber selbst wenn ich den folgenden code, es läuft noch zweimal:
$(document).ready(function() {
try{
console.log('ready');
}
catch(e){
console.log(e);
}
});
In der Konsole sehe ich "bereit" angemeldet zweimal. Ist es möglich, dass ein anderes .bereit, mit einer Ausnahme, es würde ein Problem verursachen? Mein Verständnis war, dass alle .bereit-tags wurden unabhängig voneinander, aber ich kann nicht scheinen zu finden, wo diese ins Spiel kommen?
Hier ist die Kopf-block für die Website:
<head>
<title>${path.title}</title>
<meta name="Description" content="${path.description}" />
<link href="${cssHost}${path.pathCss}" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="media/js/fancybox/jquery.fancybox.pack.js" type="text/javascript" ><!-- --></script>
<script src="/media/es/jobsite/js/landing.js" type="text/javascript" ><!-- --></script>
<script src="/media/es/jobsite/js/functions.js" type="text/javascript"><!-- --> </script>
<script src="/media/es/jobsite/js/jobParsing.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="/media/es/jobsite/js/queryNormilization.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery/jquery.metadata.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery/jquery.form.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery.i18n.properties-min.js" type="text/javascript" charset="utf-8"><!----></script>
<script type="text/javascript" charset="utf-8">
function updateBannerLink() {
var s4 = location.hash.substring(1);
$("#banner").attr('href','http://INTELATRACKING.ORG/?a=12240&c=29258&s4='+s4+'&s5=^');
}
</script>
</head>
Zahlen keine Aufmerksamkeit auf die JSP-Variablen, aber wie Sie sehen können ich bin nur dem Aufruf der functions.js Datei einmal (das ist, wo die .ready-Funktion vorhanden ist)
InformationsquelleAutor der Frage Xenology | 2012-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bereit-Ereignis nicht auslösen, zweimal. Was ist mehr als wahrscheinlich geschieht, ist Sie code, verschieben oder Bearbeiten Sie das element, das den code enthält, die bewirkt, dass der browser für die erneute Ausführung der Skript-block.
Dies kann vermieden werden, einschließlich der Skript-tags in der
<head>
oder vor dem schließenden</body>
tag und nicht mit$('body').wrapInner();
. mit$('body').html($('body').html().replace(...));
hat den gleichen Effekt.InformationsquelleAutor der Antwort Kevin B
Passiert es mir auch, aber ich merkte, dass das Skript enthalten war zweimal wegen schlechter Zusammenführen.
InformationsquelleAutor der Antwort Charles HETIER
Mir das passiert bei der Verwendung von KendoUI... aufrufen eines popup-Fensters bewirkt, dass der
document.ready
Ereignis mehrfach ausgelöst. Die einfache Lösung ist es, ein globales flag, so dass es nur einmal ausgeführt wird:Es ist eine Art hack-ish, aber es funktioniert.
InformationsquelleAutor der Antwort qJake
Stellen Sie sicher, dass Sie nicht umfassen JS-Datei zweimal. Das war mein Fall
InformationsquelleAutor der Antwort kakauandme
versuchen Sie, diese in Ihrem functions.js um zu verhindern, dass Sie zweimal ausgeführt :
aber ich schlage vor, dass Sie sich mehr in ihm zu sehen, wo Sie beim Aufruf der zweiten Zeit.
InformationsquelleAutor der Antwort Mouna Cheikhna
Könnten Sie denken, zu verwenden
statt
InformationsquelleAutor der Antwort hvdd
Ich hatte ein ähnliches problem, wenn ich versuche zu aktualisieren, eine teilweise. Ich rief eine Rückkehr ActionResult statt einer Rückkehr PartialViewResult. Das ActionResult verursacht meine ready() zweimal ausgeführt.
InformationsquelleAutor der Antwort user3048613
Gibt es eine Möglichkeit, dieses problem auftreten, wenn Sie hinzufügen, die den gleichen controller zweimal in den html-Code.
Für eine Instanz:
[js]
[html]
InformationsquelleAutor der Antwort Charitha Goonewardena
Hatte ich ein ähnliches Problem heute. Ein
<button type="submit">
verursacht die$(document).ready(...)
Ereignis, um wieder Feuer in meinem Fall. Ändern Sie den code,<button type="button">
löste das Problem für mich.Sehen Dokument.ready-Funktion erneut aufgerufen, nach dem submit-button? hier auf stackoverflow für mehr details.
InformationsquelleAutor der Antwort lominart
In meinem Fall $(document).bereit war, feuern Sie zweimal wegen der schlechten CSS, prüfen, ob ein Teil des CSS hat
background-image: url('');
InformationsquelleAutor der Antwort Posis
Wenn der iframe nicht alles zeigen und auch für andere Gründe (wie das hochladen einer Datei, ohne neu zu laden), können Sie etwas wie das hier tun :
Beachten Sie, dass SRK nicht im Lieferumfang enthalten, der verhindert, dass die zweite auf fertig trigger auf das Dokument.
InformationsquelleAutor der Antwort Alex Sikamiotis
Ich hatte das problem auch mit Fenster.load-Funktion zweimal ausgeführt wurde:
Der Grund dafür war denn ich hatte in Bezug auf die gleichen javascript-Datei in die Haupt-Seite sowie ein .net-Benutzersteuerelement. Wenn ich den Verweis entfernt in der main-Seite, die load-Funktion nur einmal ausgeführt wird.
InformationsquelleAutor der Antwort Egil Morten Eriksen