jquery - 多次使用 google.setOnLoadCallback 可以吗?

标签 jquery asp.net-mvc google-ajax-api

我正在使用 ASP.NET MVC 构建一个网站,并且我有使用 jQuery 执行各种操作的部分 View 。我正在考虑切换到 Google 的 AJAX API 并使用他们的加载器来加载 jQuery。但是,我注意到我将无法再使用 $(document).ready(),因为 Google 的加载程序指定了回调 google.setOnLoadCallback()

这对我来说有点问题,因为我在各种部分 View 中有 $(document).ready() 因为它们做了不同的特定于自己的事情,而我不希望要注意的父 View 。

我可以指定多个回调并将 $(document).ready() 替换为 google.setOnLoadCallback(someUniqueCallbackFunction) 吗?

这是处理这种情况的理想方法还是有其他更好的方法?

最佳答案

是的,您可以使用setOnLoadCallback代替$(document).ready。有一个未记录的第二个参数(或者至少我找不到它)指定何时调用回调函数;可能的值为“false”(默认)- 在窗口加载时,或“true”- 在 DOM 加载 (DOMContentLoaded) 时。一旦所有标记加载完毕(比 window.load 早得多),就会触发 DOM 事件。窗口加载事件在所有图像和脚本等完成加载后触发。

// Very similar to $(document).ready()
google.setOnLoadCallback( OnLoad, true );
<小时/>
// Very similar to $(window).load()
// Same as google.setOnLoadCallback( OnLoad, false );
google.setOnLoadCallback( OnLoad );

是的,您可以在单个页面上多次使用 setOnLoadCallback。这是 AJAX API 的一个非常重要的未记录功能(截至本文发布时尚未记录)。每次调用 setOnLoadCallback 时,它都会堆积 DOM 或窗口加载后要调用的所有函数。

关于jquery - 多次使用 google.setOnLoadCallback 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380043/

相关文章:

javascript - 取消谷歌ajax api中的请求

javascript - 任何内部元素都是可见的 jQuery

c# - ASP.NET MVC 参数绑定(bind) : How to POST a list or array to a controller method?

c# - ASP.NET MVC FileNotFoundException 错误

python - 为 Google Ajax 搜索准备字符串?

java - GWT/Java 中等待多个异步事件完成的干净方式

javascript - 将多个函数添加到 jquery $(window).load 函数声明的正确方法是什么?

javascript - 滚动到 div - 粘性导航高度

jquery - 如果兄弟元素之一为空,则隐藏元素

asp.net-mvc - 复杂 ASP.net MVC 模型的示例在哪里?