标签: document-ready

jQuery - 在 document.ready 之前运行一个函数......但不是太早

我有一个页面,其中包含一个 div,页面加载时必须通过 JS 调整该 div 的大小。为了做到这一点,我给它一个 760px 的“默认宽度”,然后运行以下代码:

function resizeList()
{
    var wlwidth,iwidth,nwidth;
    wlwidth = document.body.clientWidth - 200 - 60;
    iwidth = 320;
    nwidth  = Math.floor(wlwidth / iwidth) * iwidth;
    $('#list').css('width',nwidth);
}

$(document).ready(function(){
    // if we're looking at a list, do the resize-thing, now and on window resize
    if (window.location.pathname.toString().split('/')[1] == "list")
    {
        resizeList();
        window.onresize = resizeList;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,页面可能需要一段时间才能加载,因为#listdiv 包含大量图像。因此,div 只会在所有内容加载完毕后才展开以填充正确的宽度。我不能只是把它从$(document).ready函数中取出,否则它会出错,说 document.body 是未定义的。

有没有办法#list在加载所有内容之前调整div 的大小?

编辑
请参阅:http : //www.google.com/images?q=whatever
他们已经实现了我想要成功的目标。该列表在页面加载时立即正确调整大小,然后填充。您可以通过 JS 调整窗口大小并观察元素平滑移动来判断它们的大小。可悲的是,谷歌的 …

jquery timing document-ready

5
推荐指数
1
解决办法
6499
查看次数

在加载正文中的所有脚本文件后调用$(document).ready()吗?

在主体中加载脚本js文件后调用$(document).ready()吗?

如果我在脚本元素的头部放置$(document).ready(),它采用一个回调函数,该函数使用在文件中声明的函数,其脚本元素在主体中加载如下:

<!DOCTYPE HTML>
<html>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(function(){
hello();
})
</script>
<head>
</head>
<body>

<script src="http://somewhere/helloFuncDeclaration.js" type="text/javascript"></script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是一种正确的方法,并保证在调用函数hello()之前将加载helloFuncDeclaration.js?

javascript jquery dom document-ready ready

5
推荐指数
1
解决办法
1万
查看次数

如何使用 jasmine 对 document.ready() 函数进行单元测试

如何使用 Jasmine 测试 document.ready 块?更具体地说,如果我有一个像这样的块:

$(document).ready(
    function () {
        abc = true;
    }
});
Run Code Online (Sandbox Code Playgroud)

如何使用 Jasmine 测试文档准备好后是否调用了内部函数?

jquery document-ready jasmine

5
推荐指数
2
解决办法
7649
查看次数

窗口 DOMContentLoaded 与文档 DOMContentLoaded

“DOM 就绪”的现代替代是事件DOMContentLoaded

您可以在 2 个全局对象上监听它:

现在我知道这个事件的原始目标是document根据上面的 MDN 链接,还可以“在 Window 界面上侦听此事件以在捕获或冒泡阶段处理它”。

window当捕获或冒泡阶段捕获事件更合适甚至需要捕获事件时,是否存在特定优势或特殊情况

javascript document-ready dom-events domcontentloaded

5
推荐指数
1
解决办法
1438
查看次数

适用于jQuery的Google AJAX Libraries CDN

我有一个页面,我需要SWFObject,jQuery和Google Maps API.我认为我可以使用以下好处:

<script type="text/javascript" src="http://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
    google.load("jquery", "1.4.1");
    google.load("swfobject", "2.2");
    google.load('maps', '2', {'callback': googleMapSetup });
</script>
Run Code Online (Sandbox Code Playgroud)

但是现在我在某处读到了(http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/)我需要使用

google.setOnLoadCallback(function() {
    // Place init code here instead of $(document).ready()
});
Run Code Online (Sandbox Code Playgroud)

而不是$(document).ready()..这是真的吗?

jquery document-ready google-ajax-libraries

4
推荐指数
1
解决办法
8380
查看次数

$(回调)和$(文档).ready(函数)之间的区别?

在jQuery站点上,描述$(callback)是它的行为相同$(document).ready(function)但后面的示例显示了两种语法之间的一些差异.所以我想知道,有没有人确切知道两者之间的差异是什么?

javascript jquery callback document-ready

4
推荐指数
1
解决办法
1129
查看次数

加载图像后的同位素显示库

我试图搜索并查看是否有任何列出的内容,但我没有看到任何内容.我一直在使用同位素制定了一个画廊,多数民众赞成,它工作正常,但在网页加载时,画廊中的图像显示了网页的中间,然后一旦被加载跳转到各自的立场.

我试图找出一种方法来设置容器隐藏,直到图像在他们的位置,然后用$ container.fadeIn(1000)淡入它们;

我只是不知道如何在加载后触发该功能.我已经尝试过使用Document.ready几个地方,似乎无法让它做出正确的反应.

<script>
$(function(){

  var $container = $('#container');

  $container.imagesLoaded( function(){
    $container.isotope({
        layoutMode : 'fitRows',
        itemSelector : '.photo'
    }); 

  });

$container.fadeIn(1000);

});
Run Code Online (Sandbox Code Playgroud)

这种作品,但它并没有真正倾听图像完全加载.

document-ready fadein

4
推荐指数
1
解决办法
4902
查看次数

$(document).ready() 在准备好之前执行?

考虑我正在运行的简化版本:

<html>
   <head>
      <script src="data.js"></script>
      <script src="content.js"></script>
   </head>
   <body>
      <div id="contentGoesHere"></div>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

显然还有更多内容,但这是基本要点。在 content.js 中,我有几个函数可以根据 data.js 中包含的 json 数据将标记加载到我的 div 中。除了这些功能之外,还有以下几行:

$(document).ready(function()
{
    loadContent();
});
Run Code Online (Sandbox Code Playgroud)

出于所有意图和目的,加载内容加载得很好,但在该代码中调用执行 jquery .show() 在几个 div 中的第一个 div,这些 div 在它们都附加到容器元素后加载。该代码没有执行,几乎就好像 div 还不存在一样。所以我尝试延迟加载:

<html>
   <head>
      <script src="data.js"></script>
   </head>
   <body>
      <div id="contentGoesHere"></div>
   </body>
   <script src="content.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)

果然,两者都会导致显示第一个面板。如果 .ready() 应该等到 DOM 加载完毕,为什么延迟加载包含 $(document).ready() 函数的文件会有所不同?

jquery document-ready

4
推荐指数
1
解决办法
2116
查看次数

如何检测AngularJS中完成的所有imges加载

我想用来ng-repeat在页面中显示超过100个图像.这些图像在加载时花费了大量时间,我不希望显示它们被加载到用户.所以,我只想在浏览器中加载它们之后显示它们.

如果加载了所有图像,有没有办法检测?

loading document-ready angularjs

4
推荐指数
1
解决办法
7658
查看次数

Blazor 服务器应用程序 $(document).ready() 等价物

我有一个 Blazor 服务器应用程序,我需要在加载文档时运行一个 js 函数——当我使用“静态”模式时,jQuery$(document).ready()工作正常,但我需要使用“ServerPrerendered”模式——当用户点击导航栏上的不同链接时, $(document).ready() 永远不会触发,因为 Blazor 使用 SingalR 来更新内容。建议的方法是使用JSRuntime.InvokeVoidAsync("jsfunctiont")inside OnAfterRenderAsyncdefaultLayout.razor但问题是此事件发生在所有子组件完全呈现之前,因此我的 js 函数将失败。我的问题是在所有子组件完全渲染后调用js函数的方式是什么?这相当于$(document).ready()在 Blazor 服务器应用程序中使用“ServerPreRendered”模式?

太感谢了!

document-ready blazor blazor-server-side

4
推荐指数
1
解决办法
1151
查看次数