2011-11-03 41 views
2

這是我的Jquery我的標籤菜單:jquery如何禁用特定選擇器的函數?

var current = $('li.selected'); 
$('li.selected #submenu').css("display", "block").addClass('lihovered'); 
current.addClass('lihovered'); 
    $("ul#ulmenu li").hover(function() { //Hover over event on list item 
     $(this).find("#submenu").show(); //Show the subnav 
     $(this).addClass('lihovered'); 
     current.removeClass('lihovered'); 
    } , function() { //on hover out... 
     $(this).find("#submenu").hide(); //Hide the subnav 
     $(this).removeClass('lihovered'); 
     current.addClass('lihovered'); 
    }); 

    $("ul#submenu").hover(function() { //Hover over event on list item 
     $(this).show(); //Show the subnav 
     $(this).parent("li").addClass('lihovered'); 
     $(this).parent("li").find('a').addClass('lihovereda'); 
    } , function() { //on hover out... 
     $(this).find("#submenu").hide(); //Hide the subnav 
     $(this).parent("li").removeClass('lihovered'); 
     $(this).parent("li").find('a').removeClass('lihovereda'); 
     current.addClass('lihovered'); 
    }); 

的問題是,當徘徊徘徊所選的bagground除去華里。爲此 我想禁用此功能:

 $("ul#ulmenu li").hover(function() { //Hover over event on list item 
      $(this).find("#submenu").show(); //Show the subnav 
      $(this).addClass('lihovered'); 
      current.removeClass('lihovered'); 
     } , function() { //on hover out... 
      $(this).find("#submenu").hide(); //Hide the subnav 
      $(this).removeClass('lihovered'); 
      current.addClass('lihovered'); 
     }); 

$('li.selected');

而徘徊懸停在子菜單中選擇獲取隱藏菜單中的另一li元素的時候我也有這個問題。爲此我想禁用此功能:

$("ul#submenu").hover(function() { //Hover over event on list item 
     $(this).show(); //Show the subnav 
     $(this).parent("li").addClass('lihovered'); 
     $(this).parent("li").find('a').addClass('lihovereda'); 
    } , function() { //on hover out... 
     $(this).find("#submenu").hide(); //Hide the subnav 
     $(this).parent("li").removeClass('lihovered'); 
     $(this).parent("li").find('a').removeClass('lihovereda'); 
     current.addClass('lihovered'); 
    }); 

$('li.selected #submenu');

的問題是,#li.selected懸停在子菜單或li元素時#submenu被隱藏。它不應該這樣做。

更新,我也試過,但它是(不是)工作:

$("ul#ulmenu li").hover(function() { //Hover over event on list item 
    if($(this).hasClass('selected')) { 
    } else { 
    $(this).find("#submenu").show(); //Show the subnav 
    $(this).addClass('lihovered'); 
    current.removeClass('lihovered'); 
    } 
} , function() { //on hover out... 
    $(this).find("#submenu").hide(); //Hide the subnav 
    $(this).removeClass('lihovered'); 
    current.addClass('lihovered'); 
}); 

但它是非常醜陋的if else語句。

+0

使用Firebug追查爲什麼你的元素正在失去backgrouond。 – Gjohn

+0

我試過了if else語句,但它不起作用 –

+0

':not(.selected)'? – JCOC611

回答

相關問題