2011-11-30 47 views
0

我正在使用一個菜單,當我點擊一個錨點<a>時,它應該滑落,當它點擊頁面的<body>時,它應該滑動(<a>標記包含在身體)。 我目前正在使用jQuery。jQuery滑動菜單在slideDown後消失

的問題是,前2後點擊的(第一個標籤上的結果是:在出現的菜單;第二點擊<body>),菜單消失,但是當我在<a>標籤再次單擊菜單幻燈片雙雙下跌的在同一時間?

下面是代碼:

$(function() { 
    $('.sch_option a').click(function() {   
     $('.sch_option .sch_more_option_extend').slideDown(150, function(){    
      $('body').click(function() { 
       $('.sch_option .sch_more_option_extend').slideUp(100);   
      }); 
     }); 
    }); 
}); 

回答

1

當你點擊a時,你需要停止傳播click事件。

$('.sch_option a').click(function(e) { 
    e.stopPropagation(); 
    $('.sch_option .sch_more_option_extend').slideDown(150); 
}); 

$('body').click(function(){ 
     $('.sch_option .sch_more_option_extend').slideUp(100); 
}); 
+0

像Jose說的那樣,你肯定應該在錨點標記的點擊之外移動主體的點擊方法。 – JesseBuesking

+0

感謝您的幫助! – sorin

0

你一遍遍地結合body相同的功能。嘗試先解除綁定;

$('body').unbind('click').click(function(){ 
    $('.sch_option .sch_more_option_extend').slideUp(100); 
}); 
+0

謝謝,但它不工作! – sorin

0

你真的不能使用$('body').這裏怎麼把你的菜單已經是body孩子,你可以做的是跟蹤點擊的offset,然後隱藏菜單。