2009-11-01 4 views
0

일부 아이를 ul 부모 내에서 요소를 찾으려고합니다. 그러나 나는 오직 첫 번째 것을 발견 할 필요가있다. 내가 테스트 한 선택의 클래스를 얻을 수있는 요소입니다 싶습니다jQuery 직장 찾기 : 처음으로

<div class="item"><a id="main5830" href="http://www.mysite.com">Test</a></div> 
<ul class="subItems"> 
<li><a>test 1</a></li> 
<li><a>test 2</a></li> 
<li><a>test 3</a></li> 
</ul> 

: 여기에 내가

$('div.item a').click(function() { 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
}); 

HTML을 사용하고 있습니다 것입니다. 어떤 이유

이는 UL에서 내를 먼저 선택하거나, UL 요소 아무것도하지 않는다. 내가 여기서 뭔가 잘못 했니?

답변

6

클릭 이벤트 처리기 끝 부분에 return false; (또는 event.preventDefault();)을 사용해야 앵커 기본 클릭 동작을 방지 할 수 있습니다.

$('div.item a').click(function() { 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
    return false; 
}); 

또는 여기

$('div.item a').click(function(e) { 
    e.preventDefault(); 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
}); 

가 작동을 보여주는 Working Demo

+0

그래, false를 돌려 사용하고 있습니다; 내 클릭 기능의 끝에서 모든 코드를 포함하지 않았습니다. 흠, 당신의 데모가 작동하고 있지만 이상하지 않다. 나는 그것을 다시 볼 것이다. –

+0

게시하지 않은 코드에 문제가 있습니까? 해당 코드에 오류가있는 경우 게시 한 코드가 일부 브라우저에서 작동하지 않을 수 있습니다 –