Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Jquery 理解悬停中的切换_Jquery - Fatal编程技术网

Jquery 理解悬停中的切换

Jquery 理解悬停中的切换,jquery,Jquery,我发现了这个代码片段,它允许我根据所讨论的ID是否被悬停在上面而逐渐衰减到某个值。然而,我有问题的理解部分代码片段,并希望澄清请 这是代码片段: $(document).ready(function() { $(document).ready(function () { $("#food-roulette").hover(function () { this.toggle = !this.toggle; $("#food-roulett

我发现了这个代码片段,它允许我根据所讨论的ID是否被悬停在上面而逐渐衰减到某个值。然而,我有问题的理解部分代码片段,并希望澄清请

这是代码片段:

$(document).ready(function() {

$(document).ready(function () {
    $("#food-roulette").hover(function () {   
        this.toggle = !this.toggle;      
        $("#food-roulette").stop().fadeTo(100, this.toggle ? 0.4 : 1);
    });
});   
}); 
我有两个问题

1) 什么是切换?这是JQuery库中的布尔变量吗?它打算如何使用

2)
this.toggle=!此选项。切换
。这句话把我弄糊涂了。在我的假设下,toggle最初是true,当我将鼠标悬停在按钮上时,toggle设置为false,因此通过三元操作,按钮的不透明度应该是1,但它是0.4。所以从某种意义上说,它的作用是相反的。如果我把
this.toggle=!在
$(“#食物轮盘赌”).stop().fadeTo(100,this.toggle?0.4:1)后面的.toggle
,然后它在按钮淡入淡出的位置反向工作,直到我将鼠标悬停在它上面


那么,有人能给我解释一下这些行中的逻辑,以及为什么它会这样工作。非常感谢

this.toggle在此上下文中是一个未定义的变量。只要这个。toggle=!调用this.toggle时,它的基本意思是:undefined=!未定义,结果为true。第一次调用此悬停时,它将因此淡入0.4

您可以通过打开Chrome开发者工具(f12),查看控制台,然后在>提示符下键入this.toggle来检查这一点-您将看到undefined。键入this.toggle=!这个.toggle你会看到是真的


在jQuery
toggle()中,是一种方法。它会像打开/关闭灯开关一样反转状态
this.toggle
看起来像是一个属性…没有括号?好的,这很有意义,感谢您的解释。知道在JQuery库中toggle变量通常用于什么用途吗(我假设用于与toggle相关的方法,但可能更多?)JQuery中有一个toggle()函数,用于隐藏和显示元素,但在上面的示例中,它只是用作随机变量名。您可以将其更改为this.banana,它也可以执行相同的操作。另一个问题刚刚出现,这可能是因为Javascript是如何工作的,但最初的切换是未定义的,所以是否会自动设置为false?或者未定义在Javascript中读取为false?不,它将是未定义的。虽然undefined会在一些事情上导致false,但如果您尝试:if(this.toggle==false){//this不会被执行}因为this.toggle==undefinedok再次感谢,我猜这是其中一个会为false的事情:)