你爲什麼不都只能用CSS做動作?
見http://jsfiddle.net/DebVr/8/
注:背景爲藍色,以便看到白色邊框。
編輯:
如果你想要一些功能,你可以在以後添加,但我認爲,基礎應與CSS。
見我的代碼有一些功能在這裏:http://jsfiddle.net/DebVr/11/
var links=$('#bar1>li>a').each(function(index,obj) {
obj.tabindex=index+1;
});
$('#bar1>li>a').focus(
function(){$(this).siblings('ul').show();}
);
$('#bar1>li>a').blur(
function(){$('#bar1>li>ul').hide();}
);
編輯2:
如果你想點擊時再隱藏子菜單中,使用下面的代碼:
var links=$('#bar1>li>a').each(function(index,obj) {
obj.tabIndex=index+1;
});
$('#bar1>li>a').focus(function(){
$(this).siblings('ul').addClass('show');
});
$('#bar1>li>a').mousedown(function(){
$(this).siblings('ul').toggleClass('show');
});
$('#bar1>li>a').blur(function(){
$(this).siblings('ul').removeClass('show');
});
和CSS:
#bar1>li>ul.show{
display:block;
}
見這裏:http://jsfiddle.net/DebVr/16/
編輯3:
在上面的代碼,我換成obj.tabindex
與obj.tabIndex
,並更新了的jsfiddle。
問題是,如果你點擊子菜單,錨點失去焦點,然後子菜單消失。在Chrome上,它可以很容易地修復設置focus
事件到#bar1>li
而不是#bar1>li>a
,但事件不能在Firefox上工作...我正在解決方案,但同時你可以使用http://jsfiddle.net/DebVr/16/。
編輯4:
最後,固定碼:http://jsfiddle.net/DebVr/18/
它適用於Chrome,Firefox和IE瀏覽器。
恐怕它只能被點擊而不能懸停,而且鏈接需要能夠在對方之間被選中,非常感謝那個實現,儘管... – hcharge 2012-08-17 13:52:45
@hcharge看到我編輯的答案,我添加了一些功能。 – Oriol 2012-08-17 14:36:31
非常感謝,因爲它看起來非常好,在正確的軌道上,我只是不知道如何讓它點擊以顯示子ul,然後單擊關閉再次隱藏,你知道你可以如何實現這個?再次感謝您的幫助 – hcharge 2012-08-17 14:45:37