Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
Jquery 尝试更改全局变量的值_Jquery_Variables - Fatal编程技术网

Jquery 尝试更改全局变量的值

Jquery 尝试更改全局变量的值,jquery,variables,Jquery,Variables,我有一段代码试图更改全局变量ipad: $(document).ready(function() { "use strict"; var ipad=0; var android=0; var windows=0; $("#ipad").click(function() { ipad=10; android=0; windows=0; $("#ipad").css('background-co

我有一段代码试图更改全局变量
ipad

$(document).ready(function() {
    "use strict";
    var ipad=0;
    var android=0;
    var windows=0;

    $("#ipad").click(function() {
        ipad=10;
        android=0;
        windows=0;
        $("#ipad").css('background-color','#C30');
        $("#android").css('background-color','#0C0');
        $("#windows").css('background-color','#0C0');
        $("#not_important").css('background-color','#0C0');
    });

    document.getElementById("res").innerHTML = ipad;
});
但是当我点击ipad上的
按钮时,我无法得到想要的结果(10)。谁能告诉我,请告诉我哪里出了问题?
谢谢。

您有一个#iPad click处理程序,可以更改iPad变量的值,但您的以下代码不在同一个处理程序中

document.getElementById("res").innerHTML = ipad;
因此,元素“res”的值将是初始值,即“0”

若要在单击后设置此元素的值,请将该行代码复制到click handler中

$("#ipad").click(function(){
            ipad=10;
            android=0;
            windows=0;
           $("#ipad").css('background-color','#C30');
            $("#android").css('background-color','#0C0');
           $("#windows").css('background-color','#0C0');
           $("#not_important").css('background-color','#0C0');
           document.getElementById("res").innerHTML = ipad;
    });
这是JSFIDLE

希望这有帮助

您有一个#iPad click处理程序,可以更改iPad变量的值,但您的以下代码不在同一个处理程序中

document.getElementById("res").innerHTML = ipad;
因此,元素“res”的值将是初始值,即“0”

若要在单击后设置此元素的值,请将该行代码复制到click handler中

$("#ipad").click(function(){
            ipad=10;
            android=0;
            windows=0;
           $("#ipad").css('background-color','#C30');
            $("#android").css('background-color','#0C0');
           $("#windows").css('background-color','#0C0');
           $("#not_important").css('background-color','#0C0');
           document.getElementById("res").innerHTML = ipad;
    });
这是JSFIDLE

希望这有帮助

这一行:

document.getElementById("res").innerHTML = ipad;
在您单击ipad按钮之前,文档准备就绪时正在运行,即:单击处理程序尚未运行(单击按钮时将运行该处理程序),因此在您将其设置为
res
的html内容时,
ipad
变量仍然为0

一个简单的解决方案是将这一行放在处理程序中。

这一行:

document.getElementById("res").innerHTML = ipad;
在您单击ipad按钮之前,文档准备就绪时正在运行,即:单击处理程序尚未运行(单击按钮时将运行该处理程序),因此在您将其设置为
res
的html内容时,
ipad
变量仍然为0


一个简单的解决方案是将该行放在处理程序中。

顺便说一句,
ipad
并不是真正的全局性。它仍然在你的
ready
功能范围内。顺便说一句,
ipad
并不是真正的全球性的。它仍然在您的
ready
功能的范围内谢谢,但我希望ipad var保持全局性,因为我希望稍后将此值添加到另一个值中。我怎样才能解决这个问题?还有其他帮助吗?谢谢,但我希望ipad var保持全球化,因为我想在以后将此值添加到另一个值中。我怎样才能解决这个问题?还有其他帮助吗?谢谢,但我希望ipad var保持全球化,因为我想在以后将此值添加到另一个值中。我怎样才能解决这个问题?任何其他帮助?
ipad
仍然是“全局的”(在ready函数的范围内),因为它是在click处理程序之外定义的。当您知道设置了正确的值时(即:当您确定用户已经单击了
#ipad
),您只需小心使用变量。谢谢,但我希望ipad var保持全局性,因为我希望稍后将此值添加到另一个值中。我怎样才能解决这个问题?任何其他帮助?
ipad
仍然是“全局的”(在ready函数的范围内),因为它是在click处理程序之外定义的。当您知道设置了正确的值时(即:当您确定用户已经单击了
#ipad
),您只需小心使用变量即可。