0

コード:

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

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

お気づきのように、この関数を prompt() に渡す必要がありますが、渡された関数内では引数の 1 つが variable に依存していますid

ここで、関数が渡された後、要素の onclick イベントに割り当てる必要があります (コード住居は jQuery を使用していません)。

まず、これを実行しようとしました: $( elem ).click( fn.apply( this , id ) );$( elem ).click( fn.call( id ) );、しかし、これらのコードは関数をすぐに実行します (理由は既にわかっているため、説明する必要はありません)。次に、関数をいじって、要素に html コードとして直接渡す文字列として配置しようとしましたonclick='THE_FUNCTION'が、成功しませんでした。

4

2 に答える 2

2

次のように、プロンプト関数でコールバック引数を追加の引数として渡すことができます。

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

次に、プロンプト関数内で適用を使用します

fn.apply(this, args);

アップデート:

これを試して:

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

したがって、匿名は次のようになります。

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

それが役に立てば幸い

于 2012-05-07T21:27:50.360 に答える
2

JS メソッドcallまたはapply関数の使用を検討してください。

于 2012-05-07T21:17:24.387 に答える