我正在尝试使用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元素)。请建议
答案 0 :(得分:1)
我认为这可能与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!!");
}
}
});
}
});
&#13;
<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>
&#13;
我认为 setOnLoadCallback
承担双重责任,不仅等待google.load
...
还有document
由于document
已被加载,可能会有些东西被搞砸......