快被jquery逼疯了,死活无法获取全局变量值!!!!!!!

y2399 2017-12-27 05:25:00
直接上代码
var address='';
var latitude='';
var longitude='';
$(function(){
//上午签到
$(".atWork").click(function(){
qwe();
alert(address+"::"+longitude+"::"+latitude);
alert(window.address+"::"+window.longitude+"::"+window.latitude);
})

//地理位置
function qwe() {
address=data.address;
//alert(data.address);
latitude=data.latitude;
//alert(data.latitude);
longitude=data.longitude;
//alert(data.longitude);
}
})
定义了一个全局函数,jquery中一个按钮点击后,是可以访问的,但是全局函数中我给全局变量赋的值,却死活访问不到!!!!
翻墙查了google都没找到合适的解答,请高人指点!!!!!
...全文
648 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
y2399 2017-12-27
  • 打赏
  • 举报
回复
哦,明白了,感谢!!!
天际的海浪 2017-12-27
  • 打赏
  • 举报
回复 2
要用第三方js代码的回调函数,在回调函数中进行下一步操作。 js是单线程的,一个线程执行结束后才能执行下一个线程。 click事件线程执行结束后异步加载的回调函数线程才能执行 你这样click事件线程一直不结束,异步加载的回调函数线程就一直不能执行。
y2399 2017-12-27
  • 打赏
  • 举报
回复
@jslang ,说的对,提醒我了,感谢,现在有这样一个需求,上班打卡,一天打两次,每次都要调用qwe函数,该函数内部是一个第三方的js代码,里面就是异步请求获取地理数据。我试图在按钮函数中增加如下代码: $(".atWork").click(function(){ qwe(); while(address=='') { } 。。。。。。。。。 这样改了后,整个程序就死掉了......我感觉我这样也没错吧......
天际的海浪 2017-12-27
  • 打赏
  • 举报
回复
data中的数据肯定是异步获取的,你先了解下异步代码的执行顺序。 在全局环境下的代码是在页面加载时就执行了,这时异步获取数据还没有完成,当然取不到值。 等你点击按钮时,异步获取数据已经完成了,就可以取到值了。 异步加载的代码都会提供回调函数。你应该在回调函数中获取和使用数据。 而不能在全局环境下的代码中获取和使用数据。
letMeAlone_ 2017-12-27
  • 打赏
  • 举报
回复
address=data.address; //data从哪里来

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧