2011-09-02 6 views

답변

1

가정 행은 두 클래스의 단 하나의 시작 :

row.toggleClass("line_odd line_even") 

트릭을 할해야합니다.

+0

이것은 당신의 가정을 이해하는 방법입니다. – user113716

3

와 블록 교체 : 예를 들어, 당신은

if (row.hasClass('line_odd')) { 
    row.removeClass('line_odd').addClass('line_even'); 

} else { 
    row.removeClass('line_even').addClass('line_odd'); 
} 
+0

hasOdd 변수가 필요 없음 –

+3

@Piyush : hasClass를 두 번 호출하지 않아도됩니다. – Chandu

+0

의미가 있습니다 ...! –

0

을 :

row.toggleClass("line_odd") 
    .toggleClass("line_even"); 

이 있다고 가정 어떤 행 요소도 line_odd과 0을 가질 수 없습니다.클래스가 처음에 설정되어 코드와 동일한 효과를 갖습니다.

+0

축소 된 버전이 아닙니다. .toggleClass로 더 줄일 수 있습니다 –

2

내가 http://api.jquery.com/toggleClass/ 같은 것을 사용을 제안 체인을 사용할 수 있습니다

var hasOdd = row.hasClass('line_odd'); 
row.toggleClass('line_odd', !hasOdd).toggleClass('line_even', hasOdd); 
+0

나를 이길! +1 – Bojangles

1

는보십시오이 진실하면 클래스를 추가하는 두 번째 인수 alongwith .toggleClass을 사용한다 감소 된 버전이며 경우는 false하는 클래스를 제거

var isOdd = row.hasClass('line_odd'); 
row.toggleClass('line_odd', !isOdd); 
row.toggleClass('line_even', isOdd); 
+0

isOdd 변수가 필요 없음 –

+4

@Piyush 이상적인 경우에 동의합니다. OP는 올바른 상태로 코드가 시작되었다고 지정하지 않았습니다. 처음에 행이 'line_odd'와 'line_even'둘 다로 시작되면 고려하십시오. 이 경우'isOdd'가 필요합니다. 나는 이것이 약간 밖에 있다는 것에 동의하지만 OP는 명시하지 않았고 원래의 샘플 – JaredPar

+0

이 센스 +1이되도록 똑같이 기능을한다. –

0
row.toggleClass('line_odd', row.hasClass('line_odd')).toggleClass('line_even', 
row.hasClass('line_odd')); 

다음과 같습니다.

+3

이 클래스는 _areready_ 설정되었을 때만 클래스를 추가하지 않습니까? 두 번째 인수가없는'toggleClass'는 이미 올바른 동작을합니다. – coyotebush

+0

수정 된 코드에 오타가있었습니다. 두 번째 인수가 필요 없다는 두 번째 선언문은 $ (selector) .toggleClass (class, switch)와 같은 구문이 아닙니다. –

+1

가능한 구문은 yes입니다. 두 번째 인수가 없으면 클래스가 있으면 제거하고 그렇지 않으면 클래스를 추가합니다. 또한 'line_even'**이있는 경우에만 'line_odd'를 추가하기 위해 코드의 첫 번째 부분을 변경해야합니다. – coyotebush

관련 문제