Als Java -Programmierer in den letzten sechs Monaten ist der von mir geschriebene JavaScript -Code fast mehr als Java -Code. Vor einiger Zeit habe ich ein Teller -Management- und Kontrollsystem für eine Bank erstellt. In der Funktion der Erzählerautorisierung müssen verschiedene Faktoren berücksichtigt werden, wie z. B. Organisationsbehörde, Erzählerbehörde, Arbeitsbehörde, Wirtschaftsbehörde usw., und diese Behörde muss überschneidet oder gewerkschaftlich gewerkschaftlich gewerkschaftlich gearbeitet werden, und viele JavaScript müssen auf der Seite verwendet werden, um es zu kontrollieren. Dies hat dazu geführt, dass der JavaScript -Code mehr für die Implementierung dieses Funktionsmoduls als den Java -Code verantwortlich ist.
Jetzt wird ein sicheres Box -Management -System für eine Bank entwickelt. Die Kernfunktionsblöcke, das Safe -Box -Sitzmanagement und das Safe -Box -Management, um die Verwaltungsfunktionen so intuitiv und bequem wie die C/S -Architektur zu erkennen und die Verarbeitungsergebnisse in Echtzeit in Echtzeit zu zeigen, nach mehreren Tagen des Denkens und des Experimentierens. Schließlich. Wechsel seines CSS nach dem Zustandsübergang des Zielobjekts.
Ein Problem, das darin auftritt, ist, dass bei der Registrierung eines Klick -Ereignishandlers für ein HTML -Element in JavaScript beispielsweise 3 Parameter an den Handler weitergegeben werden. Unabhängig von der folgenden Methode (Knoten bedeutet den Knoten, das Ereignis zu registrieren, und Spaß ist die Ereignisbearbeitungsfunktion) können die Parameter nicht an die Veranstaltungsbearbeitungsfunktion übergeben:
node.adDeVentListener ('Click', Fun, False); node.attachEvent ('Onclick', Fun); Node ['Onclick'] = FunOffensichtlich ist die Methode nicht gut. Bitte beachten Sie, dass die Schreibmethode falsch ist:
node.addeventListener ('click', fun (arg1, arg2, arg3), false); node.attachEvent ('Onclick', Fun (arg1, arg2, arg3)); Node ['Onclick'] = Fun (arg1, arg2, arg3)Glücklicherweise habe ich ein Buch mit dem Titel "JavaScript.dom Advanced Programing" gelesen und in diesem Buch eine Lösung gefunden. Schreiben Sie zuerst eine Methode:
Funktion Bindfunction (OBJ, func) {var args = []; für (var i = 2; i <argumente.length; i ++) {args.push (Argumente [i]);} return function () {func.apply (obj, args);}; };Fügen Sie dann die folgenden zwei Methoden Ihrer JS -Bibliothek hinzu. Wenn Sie es nicht verstehen, können Sie sich auf "JavaScript.dom Advanced Programming Design" beziehen. Der Abschnitt 2.3 des Buches enthält eine Erläuterung dieser Methode, aber ich habe einige Änderungen hinzugefügt:
Funktion Bindfunction (OBJ, func) {var args = []; für (var i = 2; i <argumente.length; i ++) {args.push (Argumente [i]);} return function () {func.apply (obj, args);};}; window ['oyf_mark'] ['Bindfunction'] = Bindfunction; Funktion addEvent (Knoten, Typ, Listener) {// Verwenden Sie die vorherige Methode, um die Kompatibilität zu überprüfen, um eine reibungslose Abbau zu gewährleisten, wenn (! if (node.adDeVentListener) {// W3C -Methode (Bubble -Ereignis, wenn falsch in true geändert wird, ist es ein Capture -Ereignis) Knoten.AdDeVentListener (Typ, Listener, False); return true;} elseif (node.attachEvent) {// MSIE -Methode node ['e' + type + louser] = louser; node [type + louser] = function () {node ['e' + type + typ + louser] (window.event);} node.attACHEvent ('on' + Typ, node, node, node [type [type [listener)); zurückkehren; } // Wenn keine Methode verfügbar ist, geben Sie false zurück. Rückgabe false;}; window ['oyf_mark'] ['addEvent'] = addEvent;Die beiden oben genannten Funktionen wurden aus dem Quellcode in "JavaScript.dom Advanced Programing" leicht modifiziert und in eine meiner eigenen JS -Bibliothek zur Wiederverwendung hinzugefügt. Als nächstes können Sie Ereignisse an das Element registrieren und die Parameter über die Ereignishandlerfunktion übergeben: folgendermaßen:
// Registrieren Sie die neue Onclick -Event -Handler -Funktion oyf_mark.adDevent (e, 'click', oyf_mark.bindfunction (e, getContainerDetail, x, y, content));