在jquery中将此作为函数的参数发送

时间:2011-05-09 09:07:49

标签: jquery

如何重写此功能如下:

    $('#TblInvoiceList td img.ImgDelete').live('click' , function () {
            $(this).parent().parent().remove();
    });

所需形式:

$('#TblInvoiceList td img.ImgDelete').live('click' , function () {
    delete(this);        
});

delete: function(){
$(this).parent().parent().remove();
}

2 个答案:

答案 0 :(得分:0)

在函数中设置this的值使用Function.call(),即:

delete.call(this);

call()apply()方法的第一个参数设置被调用函数的上下文(即this的值)。

或者,如果您的侦听器必须调用delete,那么请编写您的事件侦听器:

$('#TblInvoiceList td img.ImgDelete').live('click' , delete);

因为只需调用delete就不需要新的闭包。

答案 1 :(得分:0)

$('#TblInvoiceList td img.ImgDelete').live('click' , delete);

var delete = function(){
    $(this).parent().parent().remove();
}

直接传递函数,以便this的范围正确。