这是一个使用传统JavaScript的水平菜单。
function createcssmenu()
{
var ultags = document.getElementById("navmenu").getElementsByTagName("ul");
for (var t = 0; t < ultags.length; t++)
{
ultags[t].style.top = ultags[t].parentNode.offsetHeight -1 + "px";
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 ()
{
$('#navmenu ul').css('top', $('#navmenu ul').parent().height() - 1 + "px");
$('#navmenu ul').parent().bind('mouseover', function ()
{
$(this).css('z-index', 100);
$('#navmenu ul').css({ 'visibility': 'visible', 'z-index': 0 });
});
$('#navmenu ul').parent().bind('mouseout', function ()
{
$(this).css('z-index', 0);
$('#navmenu ul').css({ 'visibility': 'hidden', 'z-index': 100 });
});
});
它无效。
我仍然遇到this.getElementsByTagName("ul")[0]
行的问题。
看看JSfiddle http://jsfiddle.net/sublay/HCajr/
它应该可以正常使用。
谢谢!
相关问题JavaScript to jQuery syntax Still need help on Converting
答案 0 :(得分:1)
而不是试图重写上面的javascript,你总是可以简化它。
看看这个小提琴 - http://jsfiddle.net/DeHQ5/
$(document).ready(function () {
$('#navmenu ul').css('top', $('#navmenu ul').parent().height() - 1 + "px");
$('#navmenu > li').bind('mouseover', function () {
$(this).children('ul').css({
'visibility': 'visible',
'z-index': 0
});
});
$('#navmenu > li').bind('mouseout', function () {
$(this).children('ul').css({
'visibility': 'hidden',
'z-index': 100
});
});
});
主要变化是初始同级选择器#navmenu > li
。
答案 1 :(得分:1)
我认为这就是你想要的FIDDLE
$(document).ready(function ()
{
$('#navmenu ul').css('top', $('#navmenu ul').parent().height() - 1 + "px");
$('#navmenu ul').each(function(){
$(this).css('top', $(this).parent().height() - 1 + "px")
});
$('#navmenu ul').parent().bind('mouseover', function ()
{
$(this).css('z-index', 100);
$('ul',this).css({ 'visibility': 'visible', 'z-index': 0 });
});
$('#navmenu ul').parent().bind('mouseout', function ()
{
$(this).css('z-index', 0);
$('ul',this).css({ 'visibility': 'hidden', 'z-index': 100 });
});
});