2014-06-23 2 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

그래서 내가 내 대답을 업데이트하는 동안 유지 보수를 위해 내려 갔지만 문제 중 하나는 if 메소드 주위에 괄호가 없다는 것입니다 :'if (...) {...}'. – isherwood

답변

3

if'ing을 모두 수행 할 필요는 없습니다. 수업을 토글하기 만하면됩니다.

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

즉, 코드가 작동해야합니다. 더 많은 정보 나 데모 없이는 더 이상 말할 수 없습니다.

관련 문제