jQuery变量:为整个文件设置变量

时间:2011-10-06 14:31:38

标签: javascript jquery variables

您可以在文件开头设置变量吗?

示例:

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');,我可以使它工作吗?

非常感谢

2 个答案:

答案 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>的末尾导入脚本,它们也会起作用,就像许多灯具现在所建议的那样。