jquery – google.setOnLoadCallback无法获取文档元素

我试图使用 JQuery获取核心图表的一些图形功能,但是一旦加载了可视化API,我就无法获得任何文档元素.以下是我的示例示例:
$(document).ready(function() {
  if ($("#myId").length > 0) { 
    google.load("visualization","1.1",{
      packages: ["corechart"]
    });
    google.setonLoadCallback(function() {
      if ($("#myId").length > 0) {
        alert("Found a match!!");
      }else{
        alert("Not found!!");
      }
    });
  }
});
<html>

  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  </head>

  <body>
    <h1>Hello Plunker!</h1>
    <div id="myId">Hello from Div!!</div>
  </body>

</html>

我希望在我的if块中执行警报.我只是在检查了#myId后才加载可视化软件包,但是它在回调中丢失了(而不是所有的html元素).请指教

解决方法

我认为它可能与setonLoadCallback有关.
但是,您可以在load语句中添加对回调的引用.
$(document).ready(function(){
  if ($("#myId").length > 0) {
    google.load('visualization','1',{
      'packages': ['corechart'],'callback': function(){
        if ($("#myId").length > 0) {
          alert("Found a match!!");
        }else{
          alert("Not found!!");
        }
      }
    });    
  }
});
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  </head>

  <body>
    <h1>Hello Plunker!</h1>
    <div id="myId">Hello from Div!!</div>
  </body>

</html>

我认为setonLoadCallback会带来双重责任,而不仅仅是等待google.load …还有文件由于文件已经加载,可能会有些东西被搞砸……

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...