JQuery函数无法识别$(此)

JQuery函数无法识别$(此),jquery,Jquery,我有一个简单的jQuery函数,可以在单击时更改表单元格的颜色 function ChangeColor( color ) { $(this).css('background-color', color); } $('td').click(function() { ChangeColor( brush_color ); } ); 此函数没有响应,没有控制台错误,因此为了缩小问题范围,我消除了brush_颜色/颜色变量,但也不起作用: function ChangeColor() {

我有一个简单的jQuery函数,可以在单击时更改表单元格的颜色

function ChangeColor( color ) {
    $(this).css('background-color', color);
}

$('td').click(function() { ChangeColor( brush_color ); } );
此函数没有响应,没有控制台错误,因此为了缩小问题范围,我消除了brush_颜色/颜色变量,但也不起作用:

function ChangeColor() {
    $(this).css('background-color', '#333');
}

$('td').click(function() { ChangeColor(); } );

我从这个测试和其他一些测试中推断,我的函数没有将$this识别为已单击的td。我很好奇在我的函数中到底是什么被识别为$this,以及为什么它没有使用错误。同时,我将$this作为变量传递,我的函数现在可以运行了,看到我在那里做了什么了吗?

将此发送给函数,如下所示

$('td').click(function () {
    ChangeColor(brush_color, this);
});

function ChangeColor( color, ele ) {
    $(ele).css('background-color', color);
}

如果未发送到函数,则ChangeColor无法识别此项

在ChangeColor函数中没有关键字“this”的上下文

而不是

$('td').click(function() { ChangeColor(); } );
使用


这将传递“This”的上下文,其中上下文是单击的TD-dom元素

Hi!一把小提琴对解决这个问题真的很有用。
$('td').click(function() { ChangeColor.call(this); } );