2009-08-23 7 views
0

私はコードを少しきれいにしたかったので、非常に長い関数を独自のメソッドに入れたいと思っていました。jqueryで関数を呼び出す方法は?

は、今私は

$('#Id').submit(function() 
{ 
    // lots of code here 
}); 

今私は

$('#Id').submit(MyFunction); 


     function MyFunction() 
     { 
      // code now here. 
     } 

ようにそれを破ると思っていますが、私はMyFunctionのにいくつかのPARMSに渡す必要があります。だから私は試しました

$('#Id').submit(MyFunction(param1, param2)); 

function MyFunction(param1, param2) 
{ 
    // code now here. 
} 

しかし、私はこれを行うときは何も動作しません。ファイヤーバグは、Fが定義されていないか、何かについて何か巨大なお尻のエラーを表示します。だから私はそれを動作させるために何をする必要があるのか​​分かりません。

$('#Id').submit(function() 
{ 
    MyFunction(param1, param2); 
}); 

答えて

3

Jquery submit - これはあなたが意図したものではありません。

+0

感謝を。あなたがすぐにそれを渡すことができない理由は何ですか? – chobo2

+0

さて、そこでやっていることは、無名関数の設定です。私はあなたがすぐにそれを渡すことができると思う(あなたの2番目の例のように)、しかし、そのコードの記述の文脈から、メソッドの呼び出しではなく、 –

+1

@ chobo2:魔法がないので、 'foo.submit(MyFunction(one、two))'を書くと、あなたは*呼び出しています*あなたはあなたに電話をかけています。 'MyFunction'が正しく動作しています。(最初にクラッシュしないと仮定して)戻り値を' submit'に渡そうとします。 – hobbs

2

あなたは

$('#Id').submit(function() { MyFunction(param1, param2); }); 

を試みることができるあなたのコードは動作しませんでした理由は、あなたがMyFunction(param1, param2)を呼び出すとする結果を渡したことがある:あなたがちょうど記述する必要が

0

あなたは直接パラメータを渡すことはできませんが、このような何か行うことができますトリックを行っているようだ

$("#Id").submit(function(){ 
    MyFunction(param1,param2); 
}); 
関連する問題