2016-02-09 85 views
1

我正在嘗試使用JQuery獲得一些使用Corechart的圖表功能,但是一旦可視化API被加載,我就無法獲取任何文檔元素。下面是我的樣品例如:我想,如果要執行我的塊警示google.setOnLoadCallback無法獲取文檔元素

$(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>

。我只在檢查#myId後才加載可視化包,但在回調中丟失了(而不是所有的html元素)。請指點

+0

它加載谷歌庫,查殺文檔元素等,並它下面的一切,檢查行爲** google.load(「可視化」** –

回答

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!!"); 
 
     } 
 
     } 
 
    });  
 
    } 
 
});
<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 ...
也是document
因爲document已經加載,或許真的被搞砸了...

+0

謝謝這有助於! – Sampat