我正在使用一個菜單,我只想通過jquery向父菜單項添加一個類。我寫的代碼工作正常,但只有當菜單項沒有任何子元素(下拉菜單)。現在我應該做些什麼改變才能在懸停時向父項添加一個類。只在菜單中爲父項添加一個類
下面是HTML
<nav id="main-menu" style="display: block;">
<ul id="menu-nav_menu" class="nav sf-js-enabled">
<li class="menu-item cat-item">
<a href="http://localhost/carp/?page_id=45" class="sf-with-ul">
<span class="main_text">About CARP</span>
</a>
<ul class="sub-menu" style="display: none; visibility: hidden;">
<li id="menu-item-41" class="menu-item">
<a href="http://localhost/carp/?page_id=40">Vision</a>
</li>
</ul>
</li>
<li class="menu-item">
<a href="http://localhost/carp/?page_id=48" class="sf-with-ul">
<span class="main_text">Our Work</span>
</a>
<ul class="sub-menu" style="display: none; visibility: hidden;">
<li class="menu-item">
<a href="http://localhost/carp/?page_id=50">How To</a>
</li>
</ul>
</li>
<li class="menu-item">
<a href="http://localhost/carp/?page_id=79">
<span class="main_text">Gallery</span></a>
</li>
<li class="menu-item">
<a href="http://localhost/carp/?page_id=81">
<span class="main_text">Contact Us</span></a>
</li>
</ul>
</nav>
這裏是jQuery的
$(document).ready(function(){
//to change the background image of previous closest menu item background
$("#main-menu ul#menu-nav_menu li a").hover(function(e) {
e.preventDefault();
var i = $("#main-menu ul li a span").index($(this).parent());
$('#main-menu li a span').eq(i-1).addClass('mybg');
$("#main-menu ul li a").mouseout(function() {
$('#main-menu li a span').eq(i-1).removeClass('mybg');
});
});
使用jQuery parent();可能會產生一些結果。 – Daniel 2013-04-05 05:49:16
你可以編輯我的代碼我試過但沒有運氣 – 2013-04-05 05:50:17
你可以把你的代碼放入jsFiddle嗎? – 2013-04-05 05:56:53