Javascript (jQuery) 效果等待图像加载

标签 javascript jquery

所以我有这个页面,其中有一些基本的自定义选项卡:

http://demo.unlockedmanagement.com/users/view/2

*注意,它会要求登录,只需使用管理员/密码,然后转到该网址。

正常加载此页面(第一次除外),一切看起来都很好。如果我对此页面进行硬刷新,选项卡/选项卡式内容将显示为好像尚未应用 javascript,而 javascript 似乎仅在加载图像后才应用。问题是我应用选项卡的 javascript 看起来像这样(您可以查看/javascript/base.js 以查看整个内容):

$(document).ready(function ()
{
    //some code ...

    //tabbed data
    if($('.tabbed-data').length > 0)
    {
        $('.tabbed-data').tabs();
    }

    //some more code ...
});

我认为使用 $(document).ready() 不会等待所有图像加载,那么为什么我在执行硬刷新的 javascript 中看到延迟?

最佳答案

您使用的脚本是正确的,$(document).ready()仅等待 DOM 加载。它不会等待图像加载。因此,问题很可能与加载脚本的位置有关。

在您的代码中,您已放置 <script>代码底部的标签。这是为什么?这很可能是问题所在,因为浏览器将按照页面显示的顺序加载资源。

给你定位<script> <head> 中的标签页面的一部分,在图像之前加载它们。

测试这是否是问题的最佳方法,只需将其放入 header 中,然后查看它是否在图像加载之前触发:

<script>
$(document).ready(function ()
{
    //some code ...

    //tabbed data
    if($('.tabbed-data').length > 0)
    {
        $('.tabbed-data').tabs();
    }

    //some more code ...
});
</script>

关于Javascript (jQuery) 效果等待图像加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989443/

相关文章:

javascript - 如何使用 apply/call 闭包通过嵌套对象传递变量

javascript - 我可以重新使用 html5 canvas 元素的转换吗?

javascript - Comboboxes onsubmit 更改给出结果但刷新 javascript 设置

jquery - DHTMLX 调度程序创建或编辑

javascript - jQuery 表过滤器排序不正确

javascript - 无法从 Express 中的 post 方法获取信息

javascript - 如何从 javascript 运行验证器?

javascript - @media 用于 Javascript 文本动画

javascript - 使用 AJAX 提交两个值

javascript - 选择 onchange 事件第一次不起作用