我试图使用
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语句中添加对回调的引用.
但是,您可以在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 …还有文件由于文件已经加载,可能会有些东西被搞砸……