代码之家  ›  专栏  ›  技术社区  ›  Simon_Weaver

为什么Yui菜单等待加载我的页面图像?

  •  0
  • Simon_Weaver  · 技术社区  · 16 年前

    编辑: 这是jquery 1.3.1中确认的错误。在jquery 1.3.2中是固定的。


    我有一个YUI菜单控件 this sample 上面有子菜单。

    我尝试使用雅虎代码初始化菜单:

    YAHOO.util.Event.onContentReady("mnuTopNav", function() {
    
        var oMenuBar = new YAHOO.widget.MenuBar("mnuTopNav", {
            autosubmenudisplay: true,
            hidedelay: 750,
            lazyload: true
        });
    
        oMenuBar.render();
    });
    

    我发现页面上的图片需要花费时间加载。

    我注意到标题会立即出现(通信/购物/娱乐),但在加载所有图像之前,指示存在子项的小箭头不会出现。

    我觉得这很奇怪。我甚至尝试将代码切换到jquery,看看在加载完图像之前是否会初始化(这就是 $(function() 我本以为该这么做的)。

    $(function(){
    
    
            var oMenuBar = new YAHOO.widget.MenuBar("mnuTopNav", {
                autosubmenudisplay: true,
                hidedelay: 750,
                lazyload: true
            });
    
            oMenuBar.render();
    });
    

    令我惊讶的是,我仍然有同样的问题。在加载整个页面之前,菜单不会初始化。

    这绝对是等待的图像。

    注意:此问题仅在Internet Explorer中出现。Firefox似乎在加载图像之前引发了这个OnContentReady事件。

    我能解决这个问题吗?


    编辑: 这是jquery 1.3.1中确认的错误。在jquery 1.3.2中是固定的。
    3 回复  |  直到 15 年前
        1
  •  1
  •   Dan Lew    16 年前

    您是否尝试使用yui的onAvailable()而不是onContentReady()?从 YUI's docs :

    OnContentry方法共享 与OnAvailable语法相同。这个 两者之间的物质差异 方法是OnContentReady等待 直到目标元素和它的 DOM中的NextSibling响应 GetElementByID。这保证了 目标元素的内容将 已完全加载(任何 稍后可能添加的动态内容 通过脚本)。如果OnContentry从不 检测到下一个闪烁,它用 window.load事件。

    我猜浏览器需要在nextSibling属性工作之前将图像加载到DOM中,所以onContentReady()正在等待。

        2
  •  0
  •   BBetances    16 年前

    对于jquery,您应该这样做:

        $(document).ready(function(){
    
    
            var oMenuBar = new YAHOO.widget.MenuBar("mnuTopNav", {
                autosubmenudisplay: true,
                hidedelay: 750,
                lazyload: true
            });
    
            oMenuBar.render();
       });
    
        3
  •  0
  •   Community Fabien Hure    7 年前

    雅虎的OnContentry(…)似乎出于某种原因等待加载图像,所以我已经停止使用它。

    此外,在$(function())的工作方式中似乎还有一个jquery错误。

    this post 我试图在这个问题上得到更多的细节。

    推荐文章