代码:
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事件(代码abode不使用jQuery)。
首先,我试图这样做:
$( elem ).click( fn.apply( this , id ) );
,
$( elem ).click( fn.call( id ) );
,但这些代码立即执行该功能(我已经知道原因,无需解释)。
然后我尝试使用该函数并将其作为字符串排列,直接将onclick='THE_FUNCTION'
html代码传递给元素,但没有成功。
答案 0 :(得分:2)
在你的函数中使用JS方法call
或apply
。
答案 1 :(得分: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 );
希望有所帮助