JavaScript到jQuery语法的转换仍然需要帮助

JavaScript to jQuery syntax Still need help on Converting

本文关键字:帮助 转换 jQuery 语法 JavaScript      更新时间:2023-09-26

我不能找到什么是错误的,而运行。在这里,我试图将JavaScript重写为jQuery语法。到底是什么不对?我做错了什么。

遗产>>

var cssmenuids = ["navmenu"];
    function createcssmenu()
    {
        for (var i = 0; i < cssmenuids.length; i++)
             var ultags = document.getElementById(cssmenuids[i]).getElementsByTagName("ul");
            for (var t = 0; t < ultags.length; t++)
            {
                ultags[t].style.top = ultags[t].parentNode.offsetHeight + "-1px";
                ultags[t].parentNode.onmouseover = function()
                {
                    this.style.zIndex = 100;
                    this.getElementsByTagName("ul")[0].style.visibility = "visible";
                    this.getElementsByTagName("ul")[0].style.zIndex = 0;
                }
                ultags[t].parentNode.onmouseout = function()
                {
                    this.style.zIndex = 0;
                    this.getElementsByTagName("ul")[0].style.visibility = "hidden";
                    this.getElementsByTagName("ul")[0].style.zIndex = 100;
                }
            }
        }
    }
    if (window.addEventListener)
        window.addEventListener("load", createcssmenu, false);
    else if (window.attachEvent)
        window.attachEvent("onload", createcssmenu);

jQuery语法>

    $(document).ready(function ()
    {
        $('ul#navmenu').height = $('ul#navmenu').parent.height + "-1px";
        $('ul#navmenu').parent.bind('mouseover', function ()
        {
            $(this).css('z-index', 100);
            $(this).$('ul')[0].css("visibility", "visible");
            $(this).$('ul')[0].css('z-index', 0);
        });
        $('ul#navmenu').parent.bind('mouseout', function ()
        {
            $(this).css('z-index', 0);
            $(this).$('ul')[0].css("visibility", "hidden");
            $(this).$('ul')[0].css('z-index', 100);
        });
    });

JSfiddle就是这样http://jsfiddle.net/sublay/HCajr/

构建自定义CSS水平菜单

您在大多数调用中都缺少括号。

声明高度应该像这样

$('ul#navmenu').height($('ul#navmenu').parent().height() -1)

你需要使用.parent()而不是.parent

$('ul#navmenu').parent().bind('mouseover'

下面,看起来好像您正在尝试在#navmenu中首先使用第一个可用的ul。当你使用[0]时,你实际上调用.get(),它将jQuery对象转换为javascript DOM元素。这样做将使您无法针对它运行jQuery函数。同样,对于选择器,链接不会像那样发生。此外,.css()将接受具有键:值对的对象。

$(this).find('ul:first').css({
    "visibility" : "visible",
    "z-index" : 0
});

再一次,.parent()缺少()

$('ul#navmenu').parent().bind('mouseout',

选择链又错了。

$(this).find('ul:first').css({
    "visibility" : "hidden",
    'z-index' : 100
});

Height是一个方法,而不是属性。你必须这样设置:

$('ul#navmenu').height($('ul#navmenu').parent.height + "-1px");