2012-05-11 2 views
1

동일한 클래스의 두 개의 div 섹션이 있으며 ullia도 있습니다.같은 클래스 이름을 가진 div에 대한 하나의 jQuery 클릭 이벤트

내 코드에서 두 번의 jQuery 클릭 이벤트가 있습니다. Google을 클릭하면 jQuery 클릭 이벤트가 모두 발생합니다. 그러나 나는 그렇게하기를 원하지 않는다. 이것을 어떻게 성취합니까?

예를 들어 Google이 클릭되면 jQuery 클릭 이벤트 만이 다른 이벤트가 아닌 무언가를하고 싶습니다. href 그래서 난 그 내 선택을 기반으로 할 수없는 변경 될 수 있습니다

<div class = "abc"> 
<ul> 
    <li class="year_"><a href="www.google.com">google</a></li> 
</ul> 
</div> 
<div class ="abc"> 
<ul> 
    <li><a href="www.yahoo.com>yahoo</a></li> 
</ul> 
</div> 

:이 내가 작업하고있는 DOM 요소입니다. 내가 따르는 코드.

$('div.abc ul li[class^="year_"] a').click(function(){ 
    //do something 
}); 

$('div.abc ul li a').click(function(){ 
    //do something 
}); 
+1

각 링크에 고유 한 ID를 추가하기 만하면 해당 선택기를 훨씬 쉽게 읽을 수 있습니다. –

+3

'ul.을 사용합니다. '실제로 일하니? 그건 좀 이상한 것 같습니다 ... –

+2

jQuery의 ['$ (isp)] (http://api.jquery.com/is/) 또는 ['$ .not()'] (http://api.jquery.com/not/)는 아마도 하나의 핸들러로도 가능할 것입니다 ... –

답변

5

당신은 "year_"클래스와 리튬을 찾는 조건문을 할 수있는 :

$('div.abc ul li a').click(function(){ 
    if ($(this).parents('li').is('[class^="year_"]')){ 
     //do something 
    } else { 
     //do something else 
    } 
}); 

jsfiddle를 참조하십시오.

+0

이것은 문제를 해결할 수있는 적절한 방법이다. +1 – Ohgodwhy

+0

동의합니다 (위의 주석 참조) : http://jsfiddle.net/EFkUp/ (편집을 보았습니다.';)') –

+1

길잃은'ul.' 마침표 선택자는 예제 코드도 있습니다. 위의 솔루션 덕분에 –

관련 문제