• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JS-Import in HTML

hefler

Neues Mitglied
Hallo zusammen

Ich will mein js-code nicht im HTML-File haben weil es sonst zu unübersichtlich wird. Sobald ich ihn aber extern stelle, funktioniert es nicht mehr. Vlt kann es auch sein weil ich jquery verwende? Muss ich das im externen js-file ebenfalls importieren?

<script type="text/javascript" src="js/listdetails.js"></script>

Das sollte zu 100pro stimmen! Mit 2 anderen Files mache ich genau das gleiche, aber bei dem File funktioniert der Import nicht!

Was wären allfällige Fehlermöglichkeiten..? Bin ratlos.. Danke für eure Hilfe.

Gruss
 
Ja, mein Javascript-File binde ich nach dem jQuery ein! Die Konsole ergibt keinen Fehler. Habe auch zum Test kurz die Datei umbenannt, und dann sagte er er kann die Funktion nicht finden. Das heisst er erkennt also das js-File und findet die Funktion, diese macht aber nichts.

Das ist mein js-File:


Code:
function showDetail(number) {
    var a = "detail_item" + number + "_change";
    var b = "#detail_item_list" + number;
    var c = document.getElementById(a).innerHTML;
    if (c=="ändern"){
        $(b).slideDown("slow");
        document.getElementById(a).innerHTML = "abbrechen";
    }
    else {
        hideDetail(number);
    }
}
function showDetail2(number) {
    var a = "#detail_item3_list_extended";
    $(a).slideDown("slow");
}
function chooseDetailOption(type, itemnumber){
    var a = "chosen_detail" + itemnumber;
    if((type == 1) && (itemnumber == 1)){
        document.getElementById(a).innerHTML = "Standard";
    }
    if((type == 2) && (itemnumber == 1)){
        document.getElementById(a).innerHTML = "Pro";
    }
    hideDetail(itemnumber);
}
function hideDetail(itemnumber) {
    var a = "detail_item" + itemnumber + "_change";
    var b = "#detail_item_list" + itemnumber;
    $(b).hide();
    document.getElementById(a).innerHTML = "&aumlndern";
}
function hideDetail2(itemnumber) {
    var b = "#detail_item" + itemnumber + "_list_extended";
    $(b).hide();
    hideDetail(itemnumber);
}

Könnte es sein dass er mit document.getElementById Probleme hat, weis es extern ist?

Gruss
 
Ja, mein Javascript-File binde ich nach dem jQuery ein! Die Konsole ergibt keinen Fehler. Habe auch zum Test kurz die Datei umbenannt, und dann sagte er er kann die Funktion nicht finden. Das heisst er erkennt also das js-File und findet die Funktion, diese macht aber nichts.

Das ist mein js-File:


Code:
function showDetail(number) {
    var a = "detail_item" + number + "_change";
    var b = "#detail_item_list" + number;
    var c = document.getElementById(a).innerHTML;
    if (c=="ändern"){
        $(b).slideDown("slow");
        document.getElementById(a).innerHTML = "abbrechen";
    }
    else {
        hideDetail(number);
    }
}
function showDetail2(number) {
    var a = "#detail_item3_list_extended";
    $(a).slideDown("slow");
}
function chooseDetailOption(type, itemnumber){
    var a = "chosen_detail" + itemnumber;
    if((type == 1) && (itemnumber == 1)){
        document.getElementById(a).innerHTML = "Standard";
    }
    if((type == 2) && (itemnumber == 1)){
        document.getElementById(a).innerHTML = "Pro";
    }
    hideDetail(itemnumber);
}
function hideDetail(itemnumber) {
    var a = "detail_item" + itemnumber + "_change";
    var b = "#detail_item_list" + itemnumber;
    $(b).hide();
    document.getElementById(a).innerHTML = "&aumlndern";
}
function hideDetail2(itemnumber) {
    var b = "#detail_item" + itemnumber + "_list_extended";
    $(b).hide();
    hideDetail(itemnumber);
}

Könnte es sein dass er mit document.getElementById Probleme hat, weis es extern ist?

Gruss

Bau einfach ein paar "console.log" ein und schau nach was in der Konsole steht.
Ich denke mal es werden keine Parameter übergeben.
 
$(a)[0] gibt bei mir undefined zurück..? :/
Anyways, ich habe herausgefunden, dass das Problem der ä-Umlaut ist (siehe oben js Zeile 5). Ohne Umlaut funktioniert es prima, mit Umlaut leider nur wenn ich das js direkt im HTML-File platziere..
 
$(a)[0] gibt bei mir undefined zurück..? :/
Anyways, ich habe herausgefunden, dass das Problem der ä-Umlaut ist (siehe oben js Zeile 5). Ohne Umlaut funktioniert es prima, mit Umlaut leider nur wenn ich das js direkt im HTML-File platziere..

Sollte natürlich so aussehen:
Code:
$('#'+a)[0]

Wenn du dann immer noch undefined bekommst, gibt es das Element mit der id in Variable a nicht.

Das alles wird wohl an der Dokumentenkodierung liegen.
Immer UTF-8, alles andere führt zu Problemen.
 
Zurück
Oben