2015-04-17 5 views
0

Как создать глобальную переменную, чтобы получить начальную позицию DIV, которые могут быть доступны из всех функций даже вJQuery глобальная переменная accesibilty

$(document).bind('click', function (e) { 

Или может ниже функции

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

быть доступны внутри Declare пр

$(document).ready(function(){}); 
+4

Объявление переменной снаружи document.ready. –

+0

Объявление переменной во всем мире можно получить во всех методах и функциях! –

+0

Лучше просто создать функцию для извлечения позиции объекта в любое удобное для вас время. Это не так дорого, чтобы получить позицию, поэтому просто получите ее по требованию. Я не вижу причин использовать глобальный для этого. – jfriend00

ответ

5

доступный вне документа. уже прикреплен к объекту окна.

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 

}); 
+0

Используйте 'window.globalVariable' или' globalVariable' только внутри обработчика событий кликов. Он будет доступен – mohamedrias

+0

Да! У него получилось .. Большое спасибо :) – NMN

+0

приветствую :) – mohamedrias

1

предпочтительным и наиболее кросс-браузер, совместимый способ справиться с этим было бы отнести его к объекту окна.

window.initialPosition = ''; 

Вы можете получить это значение в пределах текущей области страницы с помощью вызова window.initialPosition. Вы можете больше узнать о области видимости переменной here.

1

Либо создать переменную вне всех функций, чтобы объявить глобальную переменную

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

или присвоить свойству на окне, так как в браузерах, все глобальные переменные свойства объекта окна

<script> 
function foo() { 
    window.globalVar = ...; 
} 
</script> 
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 

Рекомендуется держать глобальное пространство как можно более чистым и должным образом рамки ваших переменных.