Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery直接绑定函数与包装器。为什么';这不管用吗?_Javascript_Jquery_Binding - Fatal编程技术网

Javascript 使用jQuery直接绑定函数与包装器。为什么';这不管用吗?

Javascript 使用jQuery直接绑定函数与包装器。为什么';这不管用吗?,javascript,jquery,binding,Javascript,Jquery,Binding,我的代码: var cardFrame = { element: "VALUE", flip: function(){ console.log("flip: "+this.element); }, }; 当按钮与此行绑定时,单击它将按其应有的方式打印flip:VALUE $("#flashcard").bind( "click", function(){cardFrame.flip();} ); 如果与下面的行绑定。按钮打印flip:undefine

我的代码:

var cardFrame = {
    element: "VALUE",
    flip: function(){
        console.log("flip: "+this.element);
    },
};
当按钮与此行绑定时,单击它将按其应有的方式打印
flip:VALUE

$("#flashcard").bind( "click", function(){cardFrame.flip();} ); 
如果与下面的行绑定。按钮打印
flip:undefined

$("#flashcard").bind( "click", cardFrame.flip );

这两种说法在功能上应该相等。这是为什么?

这里的问题是不同的范围(此值)

在第一种情况下,该值根据需要指向对象cardFrame

在第二种情况下,这指向#flashcard元素,因为它直接用于事件中

要了解正在发生的事情,请执行以下操作:

var cardFrame = {
    element: "VALUE",
    flip: function(){
        console.log(this);
    },
};

您将看到这两种情况下的值是不同的。

这里的问题是不同的范围(此值)

在第一种情况下,该值根据需要指向对象cardFrame

在第二种情况下,这指向#flashcard元素,因为它直接用于事件中

要了解正在发生的事情,请执行以下操作:

var cardFrame = {
    element: "VALUE",
    flip: function(){
        console.log(this);
    },
};

您将看到这两种情况下的值是不同的。

这里的问题是不同的范围(此值)

在第一种情况下,该值根据需要指向对象cardFrame

在第二种情况下,这指向#flashcard元素,因为它直接用于事件中

要了解正在发生的事情,请执行以下操作:

var cardFrame = {
    element: "VALUE",
    flip: function(){
        console.log(this);
    },
};

您将看到这两种情况下的值是不同的。

这里的问题是不同的范围(此值)

在第一种情况下,该值根据需要指向对象cardFrame

在第二种情况下,这指向#flashcard元素,因为它直接用于事件中

要了解正在发生的事情,请执行以下操作:

var cardFrame = {
    element: "VALUE",
    flip: function(){
        console.log(this);
    },
};
您将看到这两种情况下的值是不同的。

它不相等,“this”在这两种情况下是不同的

在第一个函数中,“flip”被称为“cardFrame”的方法,因此在函数“this”中是对象“cardFrame”

在第二个示例中,jQuery传递的“this”是您将click事件附加到的元素

你可以读到它是不相等的,在这两种情况下,“这”是不同的

在第一个函数中,“flip”被称为“cardFrame”的方法,因此在函数“this”中是对象“cardFrame”

在第二个示例中,jQuery传递的“this”是您将click事件附加到的元素

你可以读到它是不相等的,在这两种情况下,“这”是不同的

在第一个函数中,“flip”被称为“cardFrame”的方法,因此在函数“this”中是对象“cardFrame”

在第二个示例中,jQuery传递的“this”是您将click事件附加到的元素

你可以读到它是不相等的,在这两种情况下,“这”是不同的

在第一个函数中,“flip”被称为“cardFrame”的方法,因此在函数“this”中是对象“cardFrame”

在第二个示例中,jQuery传递的“this”是您将click事件附加到的元素


您可以阅读已弃用的

绑定。您应该在
事件处理程序上使用
<代码>绑定
还是在幕后调用它<代码>$(“#flashcard”)。在('click',cardFrame.flip)上
bind
已弃用。您应该在事件处理程序上使用
<代码>绑定
还是在幕后调用它<代码>$(“#flashcard”)。在('click',cardFrame.flip)上
bind
已弃用。您应该在事件处理程序上使用
<代码>绑定
还是在幕后调用它<代码>$(“#flashcard”)。在('click',cardFrame.flip)上
bind
已弃用。您应该在事件处理程序上使用
<代码>绑定
还是在幕后调用它<代码>$(“#flashcard”)。在('click',cardFrame.flip)上