我是JavaScript的新手,我想知道为什么它对我不起作用:
function resetColor(){
     $(this).css( { "color": "red" } )
}
$('.class').click(function() {
     resetColor();
});
Run Code Online (Sandbox Code Playgroud)
我也尝试$(this)在点击时保存为变量.class,但这对我也不起作用.
koa*_*dev 11
一种更简单的方法是引用该函数而不是将其包装在匿名函数中,如下所示:
$('.class').click(resetColor);
Run Code Online (Sandbox Code Playgroud)
        最好的方法是将其作为参数传递
function resetColor(element) {
     $(element).css( { "color": "red" } )
}
$('.class').click(function() {
     resetColor(this);
});
Run Code Online (Sandbox Code Playgroud)
另一种方法是将resetColor定义为对象内的函数
    jQuery.fn.resetColor = function() {
         $(this).css( { "color": "red" } )
    }
    $('.class').click(function() {
         $(this).resetColor();
    });
Run Code Online (Sandbox Code Playgroud)
        this代表谁调用函数的上下文.当你打电话时resetColor,它隐含地使用this作为window对象的顶级.如果您希望通过函数调用来维护上下文,则可以使用call().
$('.class').click(function() {
    resetColor.call(this);
});
Run Code Online (Sandbox Code Playgroud)
另一个明显的选择是不使用this,而是将元素作为参数传递.
function resetColor(e) {
     $(e).css({color: 'red'});
}
$('.class').click(function() {
     resetColor(this);
});
Run Code Online (Sandbox Code Playgroud)