2010-12-17 8 views
0

이 작업은 정말 간단해야하지만 수행 할 작업을 파악할 수 없습니다. jQuery 아코디언 섹션에서 클릭하면 클래스가 있는지 알아 내려고 해요. 그렇다면 함수를 실행해야합니다. 지금까지 내가 콘텐츠 섹션은 변경 기능에 다음을 사용하여 행동하고 검사 할 수 있습니다 것으로 나타났습니다 : 아코디언 변경 함수에서 jQuery UI 개체 액세스

console.log(ui.newContent); 

방화범이 끌려에서 개체를 보면, I는 0 인덱스 거기에 볼 수 있습니다. Firebug에서 그것을 확장하기 위해 0을 클릭하면 오브젝트 속성 중 하나 인 "get classList"로 나열된 것이 나타납니다. 그러나 다음 작업도이에 액세스하려면 :

console.log(ui.newContent[0].classList); 
console.log(ui.newContent[0].classList()); 

을 그러나, 나는이를 통해 객체의 ID를 얻을 수있었습니다 :

console.log(ui.newContent[0].id); 

그래서, 호기심, 사람이 접근하는 방법을 알고 classList, 또는 난 그냥 선택기로 ID를 사용하고 개체를 다시 얻을 수 있도록 내가 그것을 사용할 수 있습니다 .hasClass에? 쓰레기 같지만 가능한 해결 방법입니다. 미리 감사드립니다!

+0

업데이트 : className 문자열에서 동일한 효과를 검색 할 수도 있습니다. 이게 최선의 관행인가? 심지어 액세스 할 수 있다면 클래스 배열을 반복하는 것보다 더 효율적일 수 있습니다 ... –

답변

1

jQuery.hasClass()가 도움이 될 것입니다. 처리기에서 :

if(ui.newContent.hasClass('foo')) { 
    // do something 
} 
+0

당신은 완전히 옳았습니다. 분명히 나는 ​​ui.newContent [0]에서 .hasClass를 사용해 보았습니다. 도! –

+0

쉬운 실수. ui.newContent는 아코디언에서 방금 선택한 컨텐츠를 포함하는 jQuery 객체입니다. ui.newContent [0]을 통해 jQuery 객체에 색인을 생성하면 jQuery는 DOM 객체를 반환하기 때문에 hasClass 및 다른 jQuery 메소드가 더 이상 존재하지 않는 것이다. –

관련 문제