我有一个基本问题。在Jquery中如果我声明一个变量并在函数内为它赋值,我该如何保持这种变化?我以为它会覆盖它。请帮助。
这是我的意思的一个简单例子。警告框显示2,但如何在x ??
中保存3<script>
var x=2
$(document).ready(function(){
(function(){
x=3;
});
alert(x);
});
</script>
答案 0 :(得分:2)
你写了一个函数表达式,但它不是IIFE的一部分,所以它没有被执行。您必须在函数表达式之后放置()
才能执行它:
var x = 2;
$(document).ready(function() {
(function() {
x = 3;
})();
alert(x);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
您使用的功能未使用。试试这个
<script>
var x=2
$(document).ready(function(){
(function(){
x=3;
})();
alert(x);
});
</script>
注意添加的括号,它在声明后立即调用函数。
工作的jsfiddle:http://jsfiddle.net/nayish/x9kzefc2/
在你的例子中,因为x是在函数之外定义的,所以它被输入到函数闭包中,因此,如果你可以立即使用,或者稍后运行函数,它将改变在外面定义的x的值功能范围。
关于自调用函数的说明:
https://sarfraznawaz.wordpress.com/2012/01/26/javascript-self-invoking-functions/
答案 2 :(得分:0)
您创建了一个功能,但没有设置,也没有调用。
请参阅此处,如何设置和调用它:
var x=2
$(document).ready(function(){
var test = (function(){
x=3;
});
test();
alert(x);
});
或
var x=2
$(document).ready(function(){
(function(){
x=3;
})();
alert(x);
});