2012-05-07 17 views
0

コード:内部変数での引数としての関数の受け渡しは可能ですか?

function remove_comment(){ 
    var id = "bla"; 
    Msg().prompt("blabla" , function(){ Ajax().post("id=" + id) } , id); 
} 

Msg().prompt(txt , fn , args){ 
    $(elem).click(fn); 
} 

あなたはお気づきのように渡された関数の内部で引数の一つが変数idに依存している間、私は、()を要求するように、この関数を渡す必要があります。

関数が渡された後、要素のonclickイベントに割り当てる必要があります(コードabodeはjQueryを使用していません)。 $(elem).click(fn.apply(this , id));$(elem).click(fn.call(id));を、これらのコードは、(私はすでに、なぜ、必要は説明しないことを知っている)、すぐに機能を実行します。

まず、私はこれを行うことを試みたのです。 次に、私は関数を使って遊んで、要素にonclick='THE_FUNCTION'のhtmlコードを直接渡すための文字列として整理しようとしましたが、成功しませんでした。

答えて

2

あなたは、プロンプト機能に余分な引数として、このような何かをコールバック引数を渡すことができますこれを試してください:

$(elem).click({id: arg}, fn); 

ので、匿名のようになります。

Msg().prompt("blabla" , function(e){ Ajax().post("id=" + e.data.id) } , id); 

は、それが助けを

+0

ありがとうございました。作品。 –

+0

申し訳ありませんが、誤解のため。編集した投稿を読んでください。 –

+0

私は答えを更新しました、それが助けてくれることを願っています –

2

機能上、JSメソッドcallまたはapplyを使用してください。

fn.apply(this, args); 

UPDATEを適用するプロンプト機能使用の内部で、その後

Msg().prompt(txt, fn, args[]); 

+0

感謝を役に立てば幸い! –

関連する問題