|
|||
JavaScript-Funktion umbauen/auslagern
Moin Leute,
ich habe eine Textbox namens "Parents: HTML-Code:
<div id="tboxes"> <input type="text" name="parents[]" class="config_textbox" oninput="addTbox(0)" style="width:200px"><br> </div> Code:
var addTbox = function(){ var tbNumber = 0; var boxes = $("#tboxes"); return function(lastNumber){ if (lastNumber === tbNumber){ tbNumber += 1; var newTbox = "<input type='text' name='parents[]' class='config_textbox' oninput='addTbox(" + tbNumber + ")' style='width:200px'><br>"; boxes.append(newTbox); } } }(); Kurzes Verständnisbeispiel: Benutzer gibt in Textbox1 etwas ein. Ist Textbox 2 schon vorhanden? Ja => Nichts tun, Nein => Textbox2 erstellen Benutzer gibt in Textbox2 etwas ein. Ist Textbox 3 schon vorhanden? Ja => Nichts tun, Nein => Textbox3 erstellen Jetzt wollte ich diese Funktion gerne auslagern: Code:
<script src="scripts/parents.js" type="text/javascript"></script> Code:
var addTbox = function(){} Code:
function addTbox(){} Kann mir da jemand weiter helfen? Lieben Gruß |
Sponsored Links |
|
|||
Hey protonenbeschleuniger,
das habe ich schon gemacht. Wenn ich das Script auslagere und auf meiner gewünschten Seite denn importiere, denn funktioniert das Script nicht mehr. Im Firebug in der Konsole wird mir allerdings auch kein Fehler oder sonst etwas dazu angezeigt. Was mich auch wundert: das Script funktioniert nur, wenn ich es unterhalb der HTML-Textbox definiere. Wenn ich das Script im Header ablege, den Button denn später im Body-Teil definiere, denn habe ich genau die gleiche Auswirkung: Funktion wird nicht ausgeführt, Fehlermeldung wird nicht ausgespuckt. MfG |
|
||||
Hochladen
(ja, es ist schwierig, keiner der eine Frage hat, besitzt die Gabe des "Ich lade mal eben mein Problem hoch!")
__________________
Hier ein immer gültiges Statement: Überarbeite deine Code, lerne die Grundlagen, widersprich mir nicht, wehre dich nicht, ich habe Recht, wir sind Lolgion, wir sind viele.. potato... All meine Angaben sind ohne Gewähr, es könnte also trotz meiner Unfehlbarkeit dazu kommen dass ich falsch liege www.richard-thiel.de | Müssen Websiten überall gleich ausschauen? |
|
||||
Zitat:
Das ist kein "Funktionsbeginn", sondern es wird einfach einer Variabeln eine Funktion zu gewiesen. Deine Kurzfassung entspricht aber nicht dem von dir gezeigten Code. Er ist tatsächlich noch komplexer. Dort wird zur Laufzeit eine Funktion aufgerufen, deren Rückgabe wiederrum eine Funktion ist. Dadurch ist addTbox eine Funktionsreferenz, die in JS mit einer einfachen Klammer aufgerufen wird. Du kannst dir das betrachten in dem du dir den Inhalt mit alert(addTbox); (ohne Klammer!) mal anschaust. Dadurch wird ein lokaler "Namespace" gebaut und die Variabel boxes und tbNumber gekapselt. Daneben gibt es noch einen zweiten Unterschied zwischen der Zuweisung einer Variabeln und der Deklaration mit einem Funktionskörper, im zweiten Fall findet ein Hoisting statt. |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Javascript Link innerhalb von Funktion | f0x | Javascript & Ajax | 1 | 17.07.2011 19:46 |
#-Anker der Javascript Funktion ausführt? | sepp88 | Javascript & Ajax | 11 | 08.01.2010 15:25 |
PHP Variable in JavaScript Funktion nutzen | Hashishin | Javascript & Ajax | 4 | 24.11.2009 20:58 |
Impressumsaufruf mit Javascript | Sinclair | Javascript & Ajax | 6 | 19.05.2008 16:41 |
[PHP] Funktion zum Optimieren von CSS | Floele | Serveradministration und serverseitige Scripte | 2 | 13.08.2005 11:31 |