JQuery变量没有延续到JavaScript

 盼抽淡了烟的悲伤 发布于 2023-01-19 11:39

我试图使用JQuery从一个URL的PHP​​获取变量,并在javascript中使用该变量来更改页面上的内容.


    

    

代码一直在JQuery中使用警报,但是一旦我到达Javascript if语句,错误控制台就会告诉我alertstate没有定义.任何帮助将非常感激.

1 个回答
  • 你有两个问题:

      $.get是异步的,所以你调用 的地方$.get 启动 ajax调用,但是当ajax调用异步发生时你的代码继续.因此,$.get将在$.get完成之前运行代码.

      你的alertstate变量是你作为回调给出的函数中的变量$.get; 它不存在于你的第二个代码块中的代码中,它希望它是一个全局变量.

    相反,把逻辑从你的第二个脚本$.get第一回调:

    <script>
    $.get('http://jsonp.jit.su/?url=http://5.175.191.73/alert.php', function(data){
      var alertstate=data.isit;
      alert('pretty awesome, eh? ' + alertstate);
      if (alertstate==1) {
          document.getElementById('theImg').src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Alert.gif";
          play_single_sound(audiotag1);
      }
    });
    </script>
    

    如果你真的,真的希望它们是分开的,你可以将所有内容包装在一个作用域函数中(以避免创建全局变量),使用一个变量,回调结束,并使用由此返回的promise $.get,如下所示:

    <script>
    (function() {
        var alertstate, promise;
    
        promise = $.get('http://jsonp.jit.su/?url=http://5.175.191.73/alert.php', function(data){
          alertstate=data.isit;
          alert('pretty awesome, eh? ' + alertstate);
        });
    
        promise.then(function() {
          if (alertstate==1) {
              document.getElementById('theImg').src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Alert.gif";
              play_single_sound(audiotag1);
          }
        });
    })();
    </script>
    

    2023-01-19 11:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有