2015-01-23 6 views
-2

다음 코드는 class1.main 및 그 (class1) 개의 내용으로 약간 변경됩니다.하나의 div에 대해 동일한 div를 다른 div에 적용

$('.main').on('click','.class1',function(){ 
    //some work with $(this) 
}); 

또한 div.class1가 보유와 유사한 구조를 갖는다 .main의 내부 div.class2있다.

질문 : 에서 class2까지 클릭하여 위의 코드로 class1에 발생한 모든 변경 사항을 적용하는 가장 쉬운 방법은 무엇입니까?

클로닝 div.class1 to div.class2은 내용이 약간 다르기 때문에 가야합니다. 위에서 실행 된 코드 만 class1class2에 모두 적용해야합니다.

위의 코드에서 중요한 것은 .closest()과 같은 방법이 포함되어 있습니다. $(this).closest('.bar').

$('.main').on('click','.class1, .class2',function(){ 
    //some work with $(this) 
}); 

을하지만 난 그들을 위해 공통 클래스를 사용하도록 추천하고 싶습니다

+1

이 두 요소에 공통 클래스를 넣고 선택에 그것을 넣어. –

+0

closest는 항상 단 하나의 항목 만 반환합니다. 그것을 사용해야하는 경우 class1과 class2를 모두 감싸는 가장 가까운 부모를 찾고 해당 스타일을 자식에게 적용 해보십시오. –

+0

html의 정확한 구조를 보여줄 수 있습니까? 그리고'closest()'가 이것에 적합한 곳이 있습니까? div 요소를 클릭 할 때 실제로하려고하는 것은 무엇입니까? – Jamiec

답변

4

쉼표를 사용하여 여러 선택기를 결합 할 수 있습니다.

$('.main').on('click','.common_class',function(){ 
    //some work with $(this) 
}); 

HTML에서 여러 클래스를 사용할 수 있습니다. 예를 들어

:

<div class="class1 common_class"></div> 
<div class="class2 common_class"></div> 
+0

코드에이 $ (this) .closest ('. bar')와 같은 가장 가까운 메서드가 포함되어 있기 때문에 죄송합니다. 내 잘못, 나는 그 질문에 언급해야한다. – Haradzieniec

+1

@Haradzieniec - 두 옵션 모두'.closest()'를 사용하면 여전히 작동해야합니다. 핸들러'$ (this)'는 – Jamiec

+0

@Jamiec에서 클릭 한 실제 코드를 참조하며, 단지 closest()를 하나만 발견 할 것이고 코드를 class1, class2 중 하나에 정확히 적용 할 수 있습니다. – Haradzieniec

관련 문제