我有几个函数使用Google Charts API实例化各种图表。
当我调用他们没有jQuery的$(document).ready方法,一切工作正常。但是用这种方法,我看着黑屏。
为什么?
<script type="text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js" charset="utf-8"></script> <script type="text/javascript" src = "http://www.google.com/jsapi" charset="utf-8"></script> function drawColumnChart1(){..some code..} function drawColumnChart2(){..some code..} function drawGeoChart(){.some code..} //This works fine. google.load("visualization","1",{packages:["piechart","corechart","geomap"]}); google.setOnLoadCallback(window.drawColumnChart1); google.setOnLoadCallback(window.drawColumnChart2); google.setOnLoadCallback(window.drawGeoChart); //This doesn't work $(document).ready(function(){ google.load("visualization","geomap"]}); google.setOnLoadCallback(window.drawColumnChart1); google.setOnLoadCallback(window.drawColumnChart2); google.setOnLoadCallback(window.drawGeoChart); });
更新
这里是我在Firebug中得到的错误:
uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://www.google.com/jsapi :: Q :: line 20" data: no] http://www.google.com/jsapi Line 22
解决方法
google.setOnLoadCallback with jQuery $(document).ready(),is it OK to mix?
可能是最接近的答案,Ryan Wheale对下面的答案也可能是有帮助的。