jquery全局变量可访问性

时间:2015-04-17 06:11:14

标签: javascript jquery

如何创建全局变量以获取div的初始位置,即使在

中也可以访问所有功能
$(document).bind('click', function (e) {

或者可以使用以下功能

$(document).bind('click', function (e) { //blahblah });

可在

内访问
$(document).ready(function(){});

4 个答案:

答案 0 :(得分:5)

在document.ready之外声明一个变量或将其附加到window对象。

var globalVariable;
$(document).ready(function(){
     globaVariable = $("div").offset().top;
    // set the position of div as you desire

});

否则使用window.globalVariable

 $(document).ready(function(){
     window.globaVariable = $("div").offset().top;
    // set the position of div as you desire

});

答案 1 :(得分:2)

在这种情况下,您根本不需要全局变量;只需在文档就绪事件处理程序中声明它:

jQuery(function($) {
    // declared in this scope
    var initPos = $("#fixed_contact_us").position();

    $(document).bind('click', function (e) { 
        // initPos is accessible here, too.
        console.log(initPos);
    });
});

// initPos is not available here

建议尽可能保持全局空间的清洁,并适当调整变量的范围。

答案 2 :(得分:1)

处理此问题的首选和最常见的跨浏览器方法是将其分配给窗口对象。

window.initialPosition = '';

然后,您可以通过调用window.initialPosition在页面的当前范围内访问此值。您可以阅读有关变量范围here的更多信息。

答案 3 :(得分:1)

在所有函数之外创建一个变量,以声明为全局变量

<script>
var globalVar
function foo() {
  ...
}
</script>

或分配给窗口上的属性,因为在浏览器中,所有全局变量都是窗口对象的属性

<script>
function foo() {
  window.globalVar = ...;
}
</script>