laden der jquery zweimal ein Fehler verursacht wird?
Ich habe eine Seite, wo jquery und andere js-s geladen wird:
<script src="/eiv/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery.jeditable.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"></script>
<script src="/eiv/javascripts/corner.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery.form.js" type="text/javascript"></script>
<script src="/eiv/javascripts/validationdate.js" type="text/javascript"></script>
Ich bin laden Registerkarten wie folgt:
<%if (tabnum == 1) {%>
<script type="text/javascript">
$(document).ready(function(){
$("#tabs").tabs();
$("#tabs ul li a").corner('7px top');
var $tabs = $('#tabs').tabs();
$tabs.tabs('select', 0);
dateValidation();
changeOption();
deleteConfirmation();
});
</script>
<%} else if (tabnum==2) {%>
<script type="text/javascript">
$(document).ready(function(){
$("#tabs").tabs();
$("#tabs ul li a").corner('7px top');
var $tabs = $('#tabs').tabs();
$tabs.tabs('select', 1);
changeOption();
deleteConfirmation();
});
</script>
<%}%>
den validationdate.js
wird eine mine gebaut, js, der prüft, Termine und andere Sachen. es ist dies die erste Zeile:
document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');
Problem:
Ist, dass in der Produktion an Zeit ..diese Seite Fehler hin und geben einen JS-Fehler. Dies bewirkt, dass die Registerkarte ist nicht anklickbar. Dieser Fehler tritt zeitweise auf, und ich kann nicht scheinen, um es zu reproduzieren auf meinem Rechner. Beide Maschinen sind mit IE. Fehler passiert auch im Firefox, wenn auch wenig JS-Fehler, was nicht in firefox. und ich habe sogar firebug, das zeigt keine JS Fehler entweder.
Ich vermute, dass der Fehler kommt, weil validationdate.js
ist auch das laden jquery-1.3.2.min.js
. Kann das ein Fehler sein?
Durch die Art und Weise, die JS-Fehlermeldung die ich bekomme, ist 'Ausnahme gefangen, aber nicht geworfen ..Zeile 23' und Zeile 23 ist folgende
<script src="/eiv/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script>
Ich bin wirklich aus Optionen hier und bin bereit, zu versuchen, Dinge aus. und auch Möglichkeiten zum reproduzieren auf meinem Rechner, damit ich es beheben kann!!
- Stellen Sie sicher, dass Sie eine Instanz von jquery und es geht auf der Oberseite der alle anderen js Dateien enthalten.
- ja es gibt nur eine Instanz von jquery in meine Seite. allerdings, wie ich schon sagte, validationdate.js hat auch eine jquery-Instanz. also nicht, dass ZWEI Instanzen von jquery
- Die
script
element, Sie schreiben mitdocument.write
wird nicht erfolgreich ausgeführt, durch die verdoppelte Anführungszeichen in das src-Attribut. - irgendeinen Grund würde es gut laufen auf meinem Rechner mit demselben browser?
- nevermind...dann was ich denke, ist wahrscheinlich nicht das problem
- Es sollte sich noch zeigen, bis in der Firebug-Konsole als Fehler obwohl. Haben Sie post von der
document.write
Linie genau so, wie es scheint, in Ihrem Skript?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, um Ihre Frage zu beantworten, ja, einschließlich der jQuery zweimal kann verursachen alle möglichen Probleme.
Um es zu beheben, diese Zeile:
Sollte gewickelt werden, um zu prüfen, ob jQuery schon vorhanden ist, anstatt blind einschließlich es wieder, wie diese:
Dann, wird es zählen nur wenn jQuery nicht bereits auf der Seite. Es gibt einen Nachteil, wenn Sie mit einem verschiedenen (wahrscheinlich neuere) version von jQuery als der Validierungs-code gebaut wurde, gibt es eine chance, es gibt einige Pausen.
window.$
undwindow.jQuery
-, clearing alle die zuvor geladene plugins zum Beispiel. Das ist wohl das häufigste symptom einer Doppel-gehören, sehe ich auf Stack Overflow: "Warum ist nicht mein plugin definiert? Ich habe das Skript!"jquery
2 mal rechts ?verbrachte ich Stunden damit, herauszufinden, warum die Verwendung von jQuery.noConflict() funktioniert nicht so ist...
Verwenden Sie einfach
var j$ = jQuery.noConflict();
und nach, dass die Verwendung j$ in Ort der $ jedes mal, wenn Sie Jquery verwenden auf dieser Seite.Mit einem iframe verursachen von JQuery zu laden, zweimal, wenn Sie
1) laden Sie JQuery für jede Seite (d.h. in Ruby on Rails über die Anwendung.html-Code.erb) und
2) der iframe ist auch eine Seite Ihrer Anwendung, anstatt einen iframe eine externe Seite.