您可以在文件开头设置变量吗?
示例:
var works = $('#id1');
var span = $('.icon');
works.focus(function() {
if(this.value.length == 0)
span.hide();
});
works.keyup(function() {
if(this.value.length > 0 && !span.is(':visible'))
span.stop().show();
else if(this.value.length == 0)
span.stop().hide();
});
函数内的变量span不起作用。而不是在每个函数中添加var span = $('.icon');
,我可以使它工作吗?
非常感谢
答案 0 :(得分:2)
理想情况下,您首先声明它们,然后在DOM准备就绪后再设置它们。
<script>
var myFunVariable;
var anotherVariable;
$(function(){
myFunVariable = $("#someElement");
anotherVariable = $("#anotherElement").children();
});
</script>
答案 1 :(得分:0)
是的,您可以拥有全局变量,但如果您在<script>
的{{1}}块中初始化它们,它们将为空。 DOM将不会被加载。
你可以这样做:
<head>
与全局变量不太一样,但是以一种更好的方式,因为真正的全局变量是一个坏主意。在$(function() {
var span = $('.whatever');
$('something.else').click(function() {
// span will work here
});
});
代码中用var
声明的任何内容对于该初始化函数中的所有代码都是有效的全局。
哦,请注意,将初始化代码放在用$(function() { ... })
调用的函数中是jQuery方法,在DOM准备好之前推迟执行。这将适用于$()
中的脚本,如果您在<head>
的末尾导入脚本,它们也会起作用,就像许多灯具现在所建议的那样。