Como programador Java nos últimos seis meses, o código JavaScript que escrevi é quase mais que o código Java. Algum tempo atrás, construí um sistema de gerenciamento e controle de caixa para um banco. Na função da autorização do caixa, vários fatores precisam ser considerados, como autoridade organizacional, autoridade do tipo de caixa, autoridade de trabalho, autoridade comercial etc., e essa autoridade deve ser intercedada ou sindicalizada, e muitos JavaScript devem ser usados na página para controlá -la. Isso fez com que o código JavaScript fosse mais responsável pela implementação deste módulo funcional do que o código Java.
Agora, um sistema de gerenciamento de caixas seguras é desenvolvido para um banco. Its core functional blocks, safe box seat management and safe box management, in order to realize the management functions as intuitive and convenient as the C/S architecture, and display the processing results to the operator in real time, after several days of thinking and experimentation, finally, CSS+javaScript+java is used to develop, Java is used to process business logic, CSS is used to express various states of the target object, and JavaScript is used to realize the A comutação de seu CSS de acordo com a transição do estado do objeto de destino.
Um problema encontrado nisso é que, ao registrar um manipulador de eventos de clique para um elemento HTML no JavaScript, por exemplo, passando 3 parâmetros para o manipulador. No entanto, não importa o uso do método a seguir (o nó significa o nó para registrar o evento, e a diversão é a função de manuseio de eventos), ele não pode passar parâmetros para a função de manuseio de eventos:
node.addeventListener ('clique', diversão, false); node.attachevent ('OnClick', diversão); node ['OnClick'] = FunObviamente, o método não é bom, então observe que o método de escrita está incorreto:
node.addeventListener ('clique', diversão (arg1, arg2, arg3), false); node.attachevent ('OnClick', diversão (arg1, arg2, arg3)); Node ['OnClick'] = Fun (Arg1, Arg2, Arg3)Felizmente, li um livro chamado "JavaScript.Dom Programming Programming" e encontrei uma solução neste livro. Primeiro, escreva um método:
função bindFunction (obj, func) {var args = []; for (var i = 2; i <argumentos.length; i ++) {args.push (argumentos [i]);} retornar function () {func.apply (obj, args);}; };Em seguida, adicione os dois métodos a seguir à sua biblioteca JS. Se você não entende, pode se referir a "Javascript.dom Avançado Programa Design". A seção 2.3 do livro contém uma explicação desse método, mas adicionei algumas alterações:
função bindFunction (obj, func) {var args = []; for (var i = 2; i <argumentos.length; i ++) {args.push (argumentos [i]);} retornar function () {func.apply (obj, args);};}; janela ['oyf_mark'] ['bindFunction'] = bindFunction; função addEvent (nó, tipo, ouvinte) {// use o método anterior para verificar a compatibilidade para garantir a degradação suave se (! iscompatible ()) {return false} if (! (node = $ (nó))) retornar false; if (node.adDeventListener) {// Método W3C (Evento Bubble, se False for alterado para True, é um evento de captura) Node.addeventListener (Tipo, ouvinte, false); retornar true;} elseif (node.attachevent) {// msie método node ['e' + tipo + ouvinte] = ouvinte; node [type + ouvinte] = function () {node ['e' + tipo + ouvinte] (window.event);} node.attachEvent ('no tipo + tipo, node [tipo +); retornar true; } // Se nenhum método estiver disponível, retorne false retorno false;}; janela ['oyf_mark'] ['addEvent'] = addEvent;As duas funções acima foram ligeiramente modificadas a partir do código -fonte em "Javascript.Dom Programming Advanced" e adicionado a uma das minhas próprias bibliotecas JS para reutilização. Em seguida, você pode registrar eventos no elemento e passar parâmetros para a função de manipulador de eventos da seguinte maneira:
// Registre a nova função de manipulador de eventos onclick oyf_mark.addevent (e, 'click', oyf_mark.bindfunction (e, getContainerDetail, x, y, conted));