過去6か月間のJavaプログラマーとして、私が書いたJavaScriptコードはJavaコード以上のものです。しばらく前に、私は銀行用の窓口管理および制御システムを構築しました。テラー認証の機能において、組織の権限、テラータイプの権限、雇用当局、ビジネス権限など、さまざまな要因を考慮する必要があり、これらの権限は交差または組合を組み合わせる必要があり、多くのJavaScriptをページに使用する必要があります。これにより、JavaScriptコードは、Javaコードよりもこの機能モジュールの実装に対してより責任を負いました。
現在、安全なボックス管理システムが銀行用に開発されています。管理機能をC/Sアーキテクチャと同じくらい直感的かつ便利に理解するために、そのコア機能ブロック、安全なボックスシート管理、安全なボックス管理、そして数日間の考え方と実験の後、プロセッシングの結果をリアルタイムでオペレーターに表示します。ターゲットオブジェクトの状態遷移によるCSSの切り替え。
これで遭遇する問題は、JavaScriptのHTML要素のクリックイベントハンドラーを登録する場合、たとえば3つのパラメーターをハンドラーに渡すことです。ただし、次の方法を使用しても(ノードはイベントを登録するノードを意味し、楽しみはイベント処理機能です)、イベント処理機能にパラメーターを渡すことはできません。
node.addeventlistener( 'click'、fun、false); node.attachevent( 'onclick'、fun); node ['onclick'] = fun
明らかに、この方法は良くないので、ライティング方法が正しくないことに注意してください。
node.addeventlistener( 'click'、fun(arg1、arg2、arg3)、false); node.attachevent( 'onclick'、fun(arg1、arg2、arg3)); node ['onclick'] = fun(arg1、arg2、arg3)
幸いなことに、私は「javascript.dom 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);}; };次に、次の2つの方法を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、リスナー){//前のメソッドを使用して互換性を確認して滑らかな劣化を確保するif(!iscompatible()){return false} if(!(node = $(node)))falseを返します。 if(node.addeventlistener){// w3cメソッド(バブルイベント、falseがtrueに変更された場合、それはキャプチャイベントです)node.addeventlistener(タイプ、リスナー、false); true;} elseif(node.attachevent){// msieメソッドnode ['e' + type +リスナー] =リスナー; node [type +リスナー] = function(){node ['e' + type +リスナー](window.event);} node.attachevent( ' + type、node [type +リスナー]); trueを返します。 } //どちらのメソッドも使用できない場合、false return false;}; window ['oyf_mark'] ['addevent'] = addevent;上記の2つの機能は、「javascript.dom Advancedプログラミング」のソースコードからわずかに変更され、再利用のために私自身のJSライブラリの1つに追加されました。次に、イベントを要素に登録し、次の方法でイベントハンドラー関数にパラメーターを渡すことができます。
//新しいOnClickイベントハンドラー関数oyf_mark.addevent(e、 'click'、oyf_mark.bindfunction(e、getContainerDetail、x、y、contationID))を登録します。