Как программист Java за последние шесть месяцев, код JavaScript, который я написал, является почти больше, чем код Java. Некоторое время назад я создал систему управления и контроля кассира для банка. В функции разрешения кассира необходимо учитывать различные факторы, такие как организационные полномочия, полномочия типа кассира, полномочия по работе, бизнес -полномочия и т. Д., И эти полномочия должны быть пересечены или объединены, и многие JavaScript должны использоваться на странице для ее контроля. Это привело к тому, что код JavaScript был более ответственным за реализацию этого функционального модуля, чем код Java.
Теперь для банка разработана безопасная система управления коробками. Его основные функциональные блоки, безопасное управление сиденьями и безопасное управление коробками, для того, чтобы реализовать функции управления, такие как интуитивно понятные и удобные, как и архитектура C/S, и показать результаты обработки оператору в режиме реального времени, после нескольких дней мышления и экспериментов, наконец, CSS+JavaScript+Java используется для развития, Java используется для обработки бизнеса. Переключение его CSS в соответствии с переходом состояния целевого объекта.
В этом возникает проблема, заключается в том, что при регистрации обработчика событий Click для элемента HTML в JavaScript, например, передачи 3 параметров обработчику. Однако, независимо от использования следующего метода (узел означает узел для регистрации события, а веселье - это функция обработки событий), он не может передавать параметры функции обработки событий:
node.addeventlistener ('click', fun, false); node.attachevent ('onclick', fun); node ['onclick'] = весельеОчевидно, что метод не очень хороший, поэтому обратите внимание, что метод написания неверный:
node.addeventlistener ('click', fun (arg1, arg2, arg3), false); node.attachevent ('onclick', Fun (arg1, arg2, arg3)); Узел ['onclick'] = веселье (arg1, arg2, arg3)К счастью, я прочитал книгу под названием «JavaScript Advanced Programming» и нашел решение в этой книге. Сначала напишите метод:
функция BindFunction (obj, func) {var args = []; for (var i = 2; i <arguments.length; i ++) {args.push (arguments [i]);} return function () {func.apply (obj, args);}; };Затем добавьте следующие два метода в вашу библиотеку JS. Если вы не понимаете, вы можете обратиться к «javascript.dom Advanced Programming Design». В разделе 2.3 книга содержится объяснение этого метода, но я добавил некоторые изменения:
функция BindFunction (obj, func) {var args = []; for (var i = 2; i <arguments.length; i ++) {args.push (arguments [i]);} return function () {func.apply (obj, args);};}; window ['oyf_mark'] ['bindfunction'] = bindfunction; Функция addEvent (node, type, usinger) {// Используйте предыдущий метод для проверки совместимости, чтобы обеспечить плавную деградацию if (! iscompatible ()) {return false} if (! (node = $ (node))) вернуть false; if (node.addeventlistener) {// W3C Метод (событие пузыря, если false изменяется на истину, это событие захвата) node.addeventListener (тип, слушатель, false); return true;} elseif (node.attachevent) {// msie method node ['e' + type + uliderer] = слушатель; node [type + uliderer] = function () {node ['e' + type + slieder] (window.event);} node.attachevent ('on' + type, node [type + sluster]); вернуть истину; } // Если ни один метод не доступен, вернуть false return false;}; window ['oyf_mark'] ['addEvent'] = addEvent;Вышеуказанные две функции были немного изменены из исходного кода в «javascript.dom Advanced Programming» и добавлены в одну из моей собственной библиотеки JS для повторного использования. Далее вы можете зарегистрировать события в элемент и передавать параметры функции обработчика событий следующим образом:
// зарегистрировать новую функцию обработчика событий Onclick OYF_MARK.Addevent (e, 'Щелкни, oyf_mark.bindfunction (e, getContainerDetail, x, y, canceedId));