jQuery将类添加到按钮

jQuery将类添加到按钮,jquery,Jquery,我试图使用jQuery简单地向按钮添加一个类。但什么也没发生。为什么? 这是我的代码: <!DOCTYPE html> <html> <head> <script src="//code.jquery.com/jquery-2.1.1.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> &l

我试图使用jQuery简单地向按钮添加一个类。但什么也没发生。为什么?

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
    <p>Press me!</p>
    <button>Test</button>
    <button>Fiddle</button>
</body>
</html>
Javascript

var B = {

    btn: $("button"),

    addSpinner: function() {
        B.btn.click(function() {
            this.addClass('spinner');
        });
    },
}

click
callback函数中,
this
是一个DOM元素,而不是jQuery对象。将其包装为
$(this)
应该可以使
addClass
工作

var B = {

    btn: $("button"),

    addSpinner: function() {
        B.btn.click(function() {
            $(this).addClass('spinner');
        });
    },
}

这里有一个例子来演示它的工作原理。注意,您还必须调用
B.addSpinner()以连接单击事件处理程序

单击
回调函数的内部,
这个
是DOM元素,而不是jQuery对象。将其包装为
$(this)
应该可以使
addClass
工作

var B = {

    btn: $("button"),

    addSpinner: function() {
        B.btn.click(function() {
            $(this).addClass('spinner');
        });
    },
}

这里有一个例子来演示它的工作原理。注意,您还必须调用
B.addSpinner()以连接单击事件处理程序

在调用
addClass
函数之前,必须使用jQuery包装
this
变量

var B = {

    btn: $("button"),

    addSpinner: function() {
        B.btn.click(function() {
            $(this).addClass('spinner'); // <----
        });
    },
}
var B={
btn:$(“按钮”),
addSpinner:function(){
B.btn.单击(函数(){

$(this).addClass('spinner');//在调用
addClass
函数之前,必须使用jQuery包装
this
变量

var B = {

    btn: $("button"),

    addSpinner: function() {
        B.btn.click(function() {
            $(this).addClass('spinner'); // <----
        });
    },
}
var B={
btn:$(“按钮”),
addSpinner:function(){
B.btn.单击(函数(){

$(this).addClass('spinner');//虽然Troy Gizzy已经给出了正确的答案,但是您仍然可以通过替换
B.btn中的
B
来进行一些改进。单击
使用
this
,如下所示

var B={
btn:$(“按钮”),
addSpinner:function(){

this.btn.单击(function(){/,虽然Troy Gizzy已经给出了正确答案,但是您仍然可以通过替换
B.btn中的
B
来进行一些改进。单击
使用
this
,如下所示

var B={
btn:$(“按钮”),
addSpinner:function(){

this.btn.click(function(){/
this
是一个简单的DOM元素-
$(this)
是一个jQuery元素,它的方法是
addClass
this
是一个简单的DOM元素-
$(this)
是jQuery元素,它有方法
addClass
特洛伊有没有办法像IIFE一样编写函数?这样我就不必从任何地方调用它?或者如果我在B中有更多的函数,我就不必单独调用它们了?这里有一个相当做作的例子,B作为命名IIFE,添加了另一个函数,并且是多重的示例(否则为什么要将其命名为函数?):特洛伊有没有一种方法可以像IIFE一样编写函数?这样我就不必从任何地方调用它?或者如果我在B中有更多函数,我就不必单独调用它们了?这里有一个相当做作的示例,将B命名为IIFE,并添加了另一个函数和多个实例(否则,为什么要将其作为命名函数?):谢谢!有没有办法像iLife那样编写函数?这样我就不必从任何地方调用它了?或者如果我在B中有更多函数,我就不必单独调用它们了?欢迎@MMRibot,在我的示例中,我已经直接调用了方法/函数。谢谢,我看到了,但是如果我在ob中添加更多函数,我该怎么做呢ject?谢谢!有没有办法像IIFE一样编写函数?这样我就不必从任何地方调用它了?或者如果我在B中有更多的函数,我就不必单独调用它们了?欢迎@MMRibot,在我的示例中,我已经直接调用了方法/函数。谢谢,我看到了,但是如果我在我的对象