如何创建全局变量以获取div的初始位置,即使在
中也可以访问所有功能$(document).bind('click', function (e) {
或者可以使用以下功能
$(document).bind('click', function (e) { //blahblah });
可在
内访问$(document).ready(function(){});
答案 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>