2014-06-23 86 views
0

我試圖執行一個腳本,點擊touchMenuButton時,兩個功能之間切換。當它被點擊時,我想添加和刪除一個類,並且當它再次被點擊時,將其逆轉並移除並添加這些類。但它不工作,我不明白爲什麼。點擊切換功能禁用防止默認

$(function() { 
    var touchMenuButton = $("#touchmenubutton"); 
    var touchMenuCanvas = $("#touchmenucanvas"); 
    var touchMenuDrawer = $("#touchmenudrawer"); 

    $(touchMenuButton).click(function (e) { 
     e.preventDefault(); 
    }); 

    $(touchMenuButton).on("click", function() { 
     if $(touchMenuCanvas).hasClass("canvas-closed") { 
      $(this).removeClass("canvas-closed"); 
      $(this).addClass("canvas-open"); 
     } else { 
      $(this).removeClass("canvas-open"); 
      $(this).addClass("canvas-closed"); 
     } 
    }); 
}); 
+0

'$(touchMenuButton)' - >'$(「#touchmenubutton」)'。我不明白你爲什麼不直接獲得價值。你正在'$(...)'內調用'$(...)',這是比較複雜的。 –

+0

因爲我正在整理我的答案的更新,所以SO下了維護,但你的問題之一是,你沒有在你的if方法中使用括號:'if(...){...}'。 – isherwood

回答

3

你不必做所有這些if'ing。只需切換類:

touchMenuButton.click(function(e) { 
    e.preventDefault(); 
    touchMenuCanvas.toggleClass("canvas-closed canvas-open"); 
}); 

這就是說,你的代碼應該工作。沒有更多信息或演示,我不能多說。