2012-06-07 1 views
3

우선 나는이 같은 시도 :사용 방법 : 클릭 이벤트에서 셀렉터가 아닌가요?

$('.choose-car li:not(.selected)').on('click', function() { 
    console.log('works and with selected'); 
    $(this).addClass('selected'); 
}); 

선택과 두 작품 ..

을하지만 지금은 아마 내가 가지고있는 생각 : 나는 저 작은 생각하고이 같은 노력 그리고

$('.choose-car li:not(.selected)').click(function() { 
    console.log('works and with selected'); 
    $(this).addClass('selected'); 
}); 

첫 번째 클릭 후 클릭 이벤트를 제거하거나 더 쉬운 해결책이 있습니까? 어쩌면 내가 놓친 것일까? 당신이 핸들러를 등록 후

+0

문제가 무엇입니까? 그 동안 마크 업과 달성하고자하는 것에 대한 간략한 설명을 보여주십시오. –

+0

두 번째 클릭시'console.log ('works and selected');를보고 싶지 않습니다. – Vytautas

답변

4

당신의 코드는 selected 클래스를 추가하고있다. selected 클래스를 가져온 후에도 처리기가 요소에 바인딩 된 상태로 유지되므로 원하는 결과가 아닐 수 있습니다.

대신 이벤트를 위임보십시오 :

$(".choose-car").on("click", "li:not(.selected)", function() { 
    $(this).addClass("selected"); 
}); 
0
$(".choose-car").on("click", "li", function(){ 
    if($(this).hasClass("selected")) { 
     return; 
    } 

    $(this).addClass('selected'); 
}); 
0
if($(this).hasClass('selected')){ 
$(this).removeClass('selected') 
} 
else{ 
$(this).addClass('selected') 
} 
관련 문제