2013-04-15 23 views
0

我無法找出運行時出了什麼問題。 在這裏,我試圖重新寫JavaScript到jQuery語法。 究竟是什麼不正確?我做錯了什麼。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/

相關問題JavaScript to jQuery syntax Building custom CSS horizontal menu

+0

會發生什麼情況?你會得到什麼錯誤? – sachleen

+0

你能發佈這個代碼運行的相關HTML嗎?將它全部包含在jsfiddle中也會有所幫助。 http://jsfiddle.net –

回答

2

您的大部分通話都缺少括號。

聲明高度應該是這樣的

$('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 
}); 
+0

謝謝!!!現在我試圖在JSfiddle上進行調試... – 84RR1573R

0

高度的方法,而不是一個屬性。您必須同樣設置:

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