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