我想用jQuery的hover
做下拉菜單。所以我嘗試的第一件事是:有沒有更好的方法做jQuery下拉菜單?
<ul id="menu">
<li>
<ul>
...
</ul>
</li>
...
</ul>
$(" #menu ul ").css({display: "none", visibility: "hidden"});
$(" #menu li ").hover(function() {
$(this).find('ul:first:hidden').css(visibility:"visible", display:"block"}).show('fast');
},
function() {
$(this).find('ul:first').css({visibility:"hidden", display:"none"});
});
和這個工程很棒...在Firefox中。不幸的是,在我正在運行的Chrome版本(9.0.597.94)中,如果將鼠標懸停在該下拉菜單上,則會在$(「#menu li#)上觸發鼠標。」
好吧,我們有一個競爭條件,我需要做的就是添加一些定時器...
(function(){
var timer;
$(" #menu li ").hover(function() {
$(this).find('ul:first:hidden').css(visibility:"visible", display:"block"}).show('fast');
},
function() {
var header = $(this);
timer = setTimeout(function() {
header.find('ul:first').css({visibility:"hidden", display:"none"});
}, 100);
});
$(" #menu li > ul ").hover(function() {
clearTimeout(timer);
},
function() {
$(this).css({visibility:"hidden", display:"none"});
});
}();
,直到有人說:we need to put a textbox in that dropdown menu
其中一期工程真正偉大的;當然還有一個文本框使鼠標移出火上$(」 #menu LI> ul「),所以現在我必須把另一個嵌套的定時器層,我在想:必須有更好的方法來做到這一點!
所以我希望有人可以線索我在...
問題1:爲什麼你需要菜單中的文本框? – 2011-02-11 00:59:31
@Paulo你可以放心地假設所有「設計」決定都發生在我有0控制的水平上。然而,這對我來說是一個反覆出現的問題(下拉菜單和超時),如果我有更簡單的方法來創建這些菜單,那將會很好。 – tzenes 2011-02-11 01:01:04