2011-11-03 45 views
0

我正在使用jquery插件熱鍵事件,以通過觸發點擊操作最小化div。但似乎這個動作重複了好幾次。這裏是一些代碼jquery熱鍵 - 在按鍵上它做了幾次動作

$(document).bind('keydown', 'Alt+m', function(e){ 
     $('#min_right_column').trigger('click'); 
     e.preventDefault(); 
    }); 

    // Column minimizer 
    $('#min_right_column').click(function(){ 

     $('#right_column').animate({ 
      width: 'toggle' 
     }); 

     if($(this).hasClass('min_right_column_normal')){ 
      // for the button 
      $(this).removeClass('min_right_column_normal'); 
      $(this).addClass('min_right_column_reverse'); 

      // for the left column 
      $('#left_column').addClass('left_column_full'); 
      $('.text').addClass('text_full'); 
      $('.story_right_column').addClass('text_full'); 

     } else { 
      // for the button 
      $(this).removeClass('min_right_column_reverse'); 
      $(this).addClass('min_right_column_normal'); 

      // for the left column 
      $('#left_column').removeClass('left_column_full'); 
      $('.text').removeClass('text_full'); 
      $('.story_right_column').removeClass('text_full'); 
     } 
    }); 

該行動起作用,#left_column添加類是好的。但是#right_column動畫寬度重複3次然後停止。 爲什麼這樣做,我該如何阻止它。 另一點值得一提的是,正常點擊按鈕#min_right_column工作正常。這個問題只發生在熱鍵操作上。

感謝您的任何幫助。

+0

你介意在[jsfiddle](http://jsfiddle.net) – hafichuk

回答

1

您是否嘗試過將.animate調用放在最後?這可能是一個瀏覽器的事情,如果它的動畫和類更改它可能會感到困惑。否則,代碼看起來很好。

此外,我會考慮使用.toggleClass()切換您的類名稱。

+0

中拋出一個工作示例謝謝,但它沒有奏效。我不知道toggleClass,這是非常有用的,謝謝一堆。 – denislexic