gpt4 book ai didi

javascript - jQuery 的 Google.load() - 不适用于 DataTables.net

转载 作者:行者123 更新时间:2023-11-30 13:21:57 26 4
gpt4 key购买 nike

我的网页(此处为 an example)使用旧的 Google 图表 API(旧的静态图像),我想将其移至新的 Google 可视化图表 API。

我还使用 jQuery、jQuery UI、Google JS map 和 DataTables.net(全部托管在 Google 和 Microsoft CDN):

<style type="text/css" title="currentStyle">
@import "/demo_table_jui.css";
@import "https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css";
</style>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&language=ru"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/jquery.dataTables.min.js"></script>
<script type="text/javascript">
$(function() {
// ...
$("#comments").dataTable( {
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aaSorting": [[0, "desc"]]
});
});

所以我尝试使用 google.loader(); 而不是脚本标签:

<style type="text/css" title="currentStyle">
@import "/demo_table_jui.css";
@import "https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css";
</style>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/jquery.dataTables.min.js"></script>
<script type="text/javascript">
google.load("jquery", "1");
google.load("jqueryui", "1");
google.load("maps", "3", {other_params: "language=ru&sensor=false"});
google.setOnLoadCallback(function() {
// ...
$("#comments").dataTable( {
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aaSorting": [[0, "desc"]]
});
});

不幸的是,这不起作用(此处为 an example page)- DataTables 不再“包装”表格。

Google Chrome 控制台中的错误消息是:

jquery.dataTables.min.js:151
Uncaught ReferenceError: jQuery is not defined

有没有人知道我做错了什么?

我问过at the DataTables.net forum也是……

更新:

我已经从在我的服务器本地托管 dataTables.net 文件切换到 Microsoft 的 CDN,因为它没有改变我的问题的任何内容(我猜是:jQuery 库正在由 google.load() 在 dataTables.net 之后

最佳答案

在 Google 加载 jQuery 之前,您已经加载了 dataTables 脚本。因此,当 dataTables 脚本运行时,没有 jQuery 对象,您会收到该错误。

您需要在 jQuery 之后加载数据表。我非常怀疑谷歌托管该文件,但在第一行的谷歌回调中,您可以使用 jQuery.getScript 加载数据表。

在 jQuery 完全引入脚本之前,您需要延迟对数据表的使用,因此将您的真实代码移至 getScript 的成功回调中

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1");
google.load("jqueryui", "1");
google.load("maps", "3", {other_params: "language=ru&sensor=false"});
google.setOnLoadCallback(function() {
jQuery.getScript('https://ajax/.../jquery.dataTables.min.js', function(success) {
if(success) {
$("#comments").dataTable( {
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aaSorting": [[0, "desc"]]
});
}
});
});
</script>

关于javascript - jQuery 的 Google.load() - 不适用于 DataTables.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9957084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com