Javascript jQuery addClass onClick

Javascript jQuery addClass onClick,javascript,asp.net,jquery,Javascript,Asp.net,Jquery,设置简单;我希望能够在触发onClick事件时(在本例中)向按钮添加一个类。我的问题是,我还没有找到一种方法将按钮本身作为参数传递给函数。我想做一些类似的事情: <asp:Button ID="Button" runat="server" onclick="addClassByClick(this)"/> 我知道我这里有很多错误,但这就是为什么我要发帖。我曾经尝试过使用jQuery和不使用jQuery的不同场景,但我总是以失败的解决方案告终(点击突然停止,未添加类等),所以我决定询

设置简单;我希望能够在触发onClick事件时(在本例中)向按钮添加一个类。我的问题是,我还没有找到一种方法将按钮本身作为参数传递给函数。我想做一些类似的事情:

<asp:Button ID="Button" runat="server" onclick="addClassByClick(this)"/>
我知道我这里有很多错误,但这就是为什么我要发帖。我曾经尝试过使用jQuery和不使用jQuery的不同场景,但我总是以失败的解决方案告终(点击突然停止,未添加类等),所以我决定询问专业人士


有什么建议我可以试试吗?感谢阅读编辑和所有帮助

它需要是一个jQuery元素才能使用,因此它需要像这样包装在
$()
中:

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

更好的总体解决方案是不引人注目的脚本,例如:

<asp:Button ID="Button" runat="server" class="clickable"/>
使用jQuery:

$('#Button').click(function(){
    $(this).addClass("active");
});
这样,您就不必使用
onclick
处理程序污染HTML标记

$('#button').click(function(){
    $(this).addClass('active');
});
我们应该做到这一点。 除非您正在用ajax加载按钮。 在这种情况下,您可以:

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

还记得不要在html代码中多次使用同一个id。

尝试使css更具体,这样新的(绿色)样式比以前的样式更具体,这样它就适合我了

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

button:active {/*your style here*/}
而不是(可能不起作用):


希望有帮助

这种方法的问题是元素ID不能保证是
按钮
,通常不是。好吧,您只能处理问题给出的内容。我相信Phil足够聪明,能够查找jQuery选择器文档,并找到一个适合这项工作的好选择器。问题确实给出了您需要的内容,标记是ASP.Net标记:)在您的第一个示例中,我是否能够使用“this”将按钮作为参数传递给函数?我不需要做一些铸造或处理吗?@Phil-是的,你可以通过
这个
在第一个例子中,它是一个DOM元素,这就是所需要的:)我强烈建议你在这里使用一个不显眼的选项,比如答案的后半部分,它更容易维护。@Nick-我一定会尝试,但是我对jQuery语法还不是很熟悉。。我真的应该好好读一读。就像你的例子;如果按钮的类是:CssClass=“button horizontal floating”我将如何确定目标?@Phil-您可以使用任何您想要的类,例如
$(“.button”)
将起作用,或者
$(“.horizontal”)
或组合
$(“.button.floating”)
将只与两个类匹配一个元素。我会点击这里的教程:(他们的数据库刚刚开始出错,应该很快就会修复)。@Nick-谢谢,我真的很感谢你的帮助。正如许多人指出的,你的按钮的呈现ID不会是“按钮”。但是,您仍然可以通过ID而不是类引用它(jquery选择器在ID上的性能优于类),方法是:$(“#”)
$('#Button').live('click', function() {...
button:active {/*your style here*/}
.active {/*style*/} (.active is not a pseudo-class)