2012-02-14 13 views
0
function addValidEvent(item,event,func) 
{ 
    if (item.addEventListener) 
    { 
     item.addEventListener(event, func, false);   
    } 
    else 
    if (item.attachEvent) 
    { 
     item.attachEvent("on" + event, func); 
    } else { 
     //todo 
    } 
} 

私はこのinRadioのJavascript機能

addValidEvent(element, "mouseover", inRadio(element)); 

ようにそれを呼び出すには、他の関数であり、私はaddValidEvent呼び出しでinRadioを呼んでこれを登録する必要があります。

paramのような関数を正しく伝えるには?

+0

が重複する可能性: //stackoverflow.com/questions/2571655/javascript-parameter-passing-in-dynamic-action-handler) –

答えて

3

コンテキストのようにそれを行うには、要素そのものであるので、あなたは、イベントハンドラとして関数リファレンス(名前を)渡すことができます。

addValidEvent(element, "mouseover", inRadio); 

またはあなたがラップすることができます匿名関数(コールバックをより細かく制御したいとき、これは便利になるかもしれません)で、あなたの関数呼び出し:あなたのコードで

addValidEvent(element, "mouseover", function(){inRadio(element);}); 
4

を関数として渡します。今あなたはメソッドinRadioを呼び出しています。あなたの関数が呼び出された上で、この

addValidEvent(element, "mouseover", function() {inRadio(element); }); 
2

あなたが実際に機能してリターンvを呼んでいますその呼出しの言葉は、addValidEventメソッドにthrid argumnentとして渡されています。

これを試してください。

addValidEvent(element, "mouseover", inRadio); 

jQueryはこの質問にタグ付けされていますので、私はこれを簡単に使用するためにjQueryを使用することをお勧めします。

$(element).mouseover(inRadio); 
-1
var a = function() { 
    // code here 
} 

その後、あなたは ''

とする必要が何しかし、私は以前の回答を:)好む

[javascriptのパラメータの動的アクションハンドラに渡す](HTTPの
+0

この情報はどのように役立ちますか?私はその質問との関係を見ていない。 –

+0

私はまだこれがむしろ不完全な例だと言っています。 'a'が既存のコードとどのように統合されるかははっきりしない。 –

+0

私はそれを言っていない;)とにかく、私は問題を理解し、あなたの答えを改善することを奨励したい。あなたが見せているのは、私がOPで知っていると思われる関数を作成する方法だけです。 –