更新元素';使用JavaScript在单击时使用CSS

更新元素';使用JavaScript在单击时使用CSS,javascript,jquery,Javascript,Jquery,我是JavaScript新手,必须为不同的选项使用一个函数,但我不知道如何使它工作 function changecolor(){ $(this).css('background-color', 'white'); $(this).css('border-top', '0.1px solid #8c8a8a'); $(this).css('border-right', '0.1px solid #8c8a8a'); } 我希望每次单击选项时都能激活函数changecolor $(

我是JavaScript新手,必须为不同的选项使用一个函数,但我不知道如何使它工作

function changecolor(){
  $(this).css('background-color', 'white');
  $(this).css('border-top', '0.1px solid #8c8a8a');
  $(this).css('border-right', '0.1px solid #8c8a8a');
}
我希望每次单击选项时都能激活函数changecolor

 $('#op1').on('click', function(e){
  e.preventDefault();
  changecolor();
});

您需要引用事件的目标,即您在该实例中单击的元素:

$('op1')。在('click',函数(e){
变色(如目标);
});
功能更改颜色(elem){
$(elem.css('background-color','red');
$(elem).css('border-top','0.1px solid#8c8a8a');
$(elem).css('border-right','0.1px solid#8c8a8a');
}


您在单击时调用函数,但“this”指的是函数,而不是单击的元素。将e作为参数传递给函数,并使用e.currentTarget或仅将此对象传递给函数。
changecolor
函数中的
this
关键字引用的是当前范围而不是元素,必须从事件处理程序函数传递元素,如下所示:

function changecolor(element){
  $(element).css('background-color', 'white');
  $(element).css('border-top', '0.1px solid #8c8a8a');
  $(element).css('border-right', '0.1px solid #8c8a8a');
}
 $('#op1').on('click', function(e){
  e.preventDefault();
  changecolor(this);
});

你所做的是正确的。你有错误吗?在浏览器中使用F12检查控制台中是否有任何输出ChangeColor不知道您所说的
这是什么意思
非常感谢,我怀疑在单击选项1时是否可以激活选项op2和op3的其他功能