2011-01-21 7 views
1

이렇게하기가 쉽지만 아직 할 수없는 것처럼 보입니다. 아이디어는 'a'태그가 클릭되면 'collapsed'라는 클래스가 있는지 확인합니다. 그렇다면 'ul'배경을 변경하십시오 (태그가 일부 임). 나는 어떤 'a'태그가 클릭되었는지 알지 못하므로 'ul'의 일부분 인 이드를 모른다 ... 나는 부모 'ul'을 찾기 위해 드릴 수 있다고 생각했지만 그렇다. 작동 안함.배경 이미지는 어떻게 변경합니까?

HTML :

<ul class="some-class" id="some-id-1"> 
    <a href="#" id="id-1">something</a> 
    <li> 
     <a class="collapsed">something else</a> 
    </li> 
</ul> 

<ul class="some-class" id="some-id-2"> 
    <a href="#" id="id-2">something</a> 
    <li> 
     <a class="collapsed">something else</a> 
    </li> 
</ul> 

<ul class="some-class" id="some-id-3"> 
    <a href="#" id="id-3">something</a> 
    <li> 
     <a class="collapsed">something else</a> 
    </li> 
</ul> 

내 스크립트 내가 잘못 뭐하는 거지

$('a').click(function() { 
    var cName = this.className; 
    switch(cName) { 
     case 'collapsed' : 
     $(this).parent().find('> ul').css('background','url(img/red.png) 0 0'); 
     break; 
    }; 
}); 

?

$('a').click(function() { 
    var cName = $(this).attr('class'); 
    if(cName == 'collapsed') { 
     $(this).closest('ul').css('background','url(img/red.png) 0 0'); 
    }; 
}); 
+0

JQuery가 잘못된 것입니다. –

+0

@Anonymous 댓글의 유형은 누구에게 도움이되지 않습니다. JQuery가 최상의 솔루션이 아니면 대체 옵션을 제공하는 방법은 무엇입니까? –

+0

나는 단순히 코드를 읽기 쉽게하기 위해 정규 JavaScript를 사용하는 것을 제안합니다. 그게 전부입니다. –

답변

3

시도는 ... 환영합니다.

$('a').click(function() { 
    // Change the first .collapsed element next to the clicked a 
    $(this).next('.collapsed').css('background-color', 'url(img/red.png) 0 0'); 
}); 
+0

예! 천재! 굉장한 작품! 고맙습니다! :영형) – Angie

0

우선, this$(this)처럼 사용할 수 있어야 - 모든 모든 제안 JQuery와의 closest 기능이 방법을 사용하여

관련 문제