“$(document).ready”功能的替代品

问题描述 投票:0回答:6

我在 aspx 页面中使用 fancybox。对于灯箱,文档就绪功能在此页面中不起作用。有人告诉我编写一个新的 javascript 代码来加载该页面中的灯箱。

jquery asp.net fancybox document-ready
6个回答
51
投票
  • 包括 jQuery。
  • 检查网络选项卡,您没有收到 404。
  • 检查控制台是否没有收到“$ isknown”。

当 DOM 准备好时做一些事情。

$(function(){
   // DOM Ready - do your stuff 
});

43
投票

试试这个:

document.addEventListener('DOMContentLoaded', function() {
   // ...
});

适用于现代浏览器和 IE9+


8
投票

如果您缺少的话,您可以使用标准的 js onload 函数来运行:

window.onload = function() {};

请注意,这可能会给您带来库问题 - 我还没有对此进行调查。


4
投票

我相信使用脚本

defer
标签是最好的解决方案。例如,

<script src="demo_defer.js" defer></script>

更多信息请访问W3 学校


3
投票

最好的方法是这样使用:

jQuery.noConflict();
(function($) {
  $(function() {
   // by passing the $ you can code using the $ alias for jQuery
   alert('Page: ' + $('title').html() + ' dom loaded!');
  });
})(jQuery);

0
投票

jQuery推荐使用

jQuery(function () { /* code */ });

而不是

jQuery(document).ready(function () { /* code */ });

另请参阅 jQuery 文档

还有

$(document).on( "ready", handler )
已弃用 jQuery 1.8 并在 jQuery 3.0 中删除。请注意,如果 DOM 变为 在附加此事件之前准备好,处理程序将不会被执行。

还有一件事。您可以使用

$

将 jQuery 对象传递给处理程序
jQuery(function ($) {
    // using $ here will be safely even jQuery.noConflict() will be enabled
});

还有一件事。在加载事件中安全地使用

$
。您可以将
jQuery(window).on('load', function () { });
包裹在
jQuery(function ($) { });
内。

jQuery(function ($) {
    $(window).on('load', function () {
        // Scripts that execute after the entire page has loaded including images
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.