jQuery addClass onClick

环境很简单; 我希望能够在触发onClick事件时向(在这种情况下)一个按钮添加一个类。 我的问题是我还没有找到一种方法将按钮本身作为参数传递给函数。 我想做的事情如下:

 

然后是一个像这样的javaScript函数:

 function addClassByClick(button){ button.addClass("active") } 

我知道我在这里遇到了很多错误,但这就是我发帖的原因。 我尝试过使用jQuery和没有jQuery的不同场景,但我总是最终得到一个破解的解决方案(点击突然停止通过,课程没有添加等等)所以我决定问专业人士。

对我可以尝试的任何建议? 感谢阅读编辑和所有帮助!

它需要是一个使用.addClass()的jQuery元素,所以需要将它包装在$()如下所示:

 function addClassByClick(button){ $(button).addClass("active") } 

更好的整体解决方案是不显眼的脚本,例如:

  

然后在jquery中:

 $(function() { //run when the DOM is ready $(".clickable").click(function() { //use a class, since your ID gets mangled $(this).addClass("active"); //add the class to the clicked element }); }); 

使用jQuery:

 $('#Button').click(function(){ $(this).addClass("active"); }); 

这样,您就不必使用onclick处理程序污染HTML标记。

 $(document).ready(function() { $('#Button').click(function() { $(this).addClass('active'); }); }); 

应该做的伎俩。 除非你用ajax加载按钮。 在这种情况下你可以这样做:

 $('#Button').live('click', function() {... 

另外请记住,不要在html代码中多次使用相同的id。

 $('#button').click(function(){ $(this).addClass('active'); }); 

尝试使你的CSS更具体,以便新的(绿色)风格比前一个更具体,所以它对我有用!

例如,您可以在css中使用:

 button:active {/*your style here*/} 

而不是(可能不工作):

 .active {/*style*/} (.active is not a pseudo-class) 

希望能帮助到你!