2012-10-27 1 views
0

로그인했는지 여부에 따라 다른 배경 이미지를 갖고 싶습니다. 지금까지 jQuery (로그인 상자를 사용하여 로그인했는지 여부를 알기 위해)를 사용하여 본문에 클래스를 추가/제거하려고했지만 예상대로 작동하지 않습니다.기존 요소에 따라 바디 클래스 추가/제거

첫 번째 if 문이 작동하고 'index'클래스가 본문에 설정되지만 로그인 할 때 클래스가 제거되지 않아도 loginform은 더 이상 존재하지 않습니다.

이 코드를 어떻게 변경하여 원하는대로 작동시킬 수 있습니까? 미리 감사드립니다.

if($('#loginForm')) { 
    $('body').addClass('index'); 
} 
else { 
    $('body').removeClass('index'); 
} 
+0

바인드 방법 로그인이 조치입니다 코드를 단축 할 수 toggleClass를 사용

$('body').toggleClass('index', $('#loginForm').length); 

을 존재하는 경우 테스트 length를 사용합니다. 첫 번째 페이지로드에 적합합니다. 모든 로그인 및 로그 아웃 작업을 수행해야합니다. –

답변

1

당신은 요소가 존재하는 경우 테스트 할 length 속성을 사용할 수 있습니다 :

if ($('#loginForm').length) { 
    $('body').addClass('index'); 
} 
else { 
    $('body').removeClass('index'); 
} 

또한 jQuery의 붙박이 size() 방법을 사용할 수 있지만, 그것은 어디 당신이 할 수있는 기본 속성을 사용하는 것이 좋습니다.

+0

'size'는 더 이상 사용되지 않습니다. – charlietfl

+0

@charlietfl입니다. 얼마나 자주 사용하는지 보여줍니다.) –

2

if($('#loginForm'))은 요소가없는 경우에도 jquery가 빈 개체를 생성하므로 항상 true를 반환합니다. JQuery와 요소 객체가, 두 번째 인수는 부울