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(),而在传递的函数内部,其中一个参数取决于变量id

现在,在函数通过后,我需要将它分配给元素的 onclick 事件(代码居所不使用 jQuery)。

首先,我尝试过这样做: $( elem ).click( fn.apply( this , id ) );, $( elem ).click( fn.call( id ) );,但是这些代码会立即执行该函数(我已经知道原因,无需解释)。然后我尝试使用该函数并将其排列为字符串以直接作为onclick='THE_FUNCTION'html代码传递给元素,但没有成功。

4

2 回答 2

2

研究使用 JS 方法callapply函数。

于 2012-05-07T21:17:24.387 回答
2

您可以在提示函数中将回调参数作为额外参数传递,如下所示:

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

然后在提示功能内使用 apply

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 回答