2009-09-08 4 views
1

3 개의 버튼이 있습니다. 하나를 클릭하면 'this-button'클래스가 생기고 클래스는 다른 클래스에서 삭제되도록하기 위해 노력하고 있습니다. 예상대로

$('button').live("click", function(){ 
    $(this).addClass("this-button").siblings().removeClass("this-button"); 
}); 

이 작동하지 않습니다

<button id="button1">Button1</button> 
    <button id="button2">Button2</button> 
    <button id="button3">Button3</button> 

그래서 여기 내 간단한 이벤트 기능입니다.

다음을 시도해보십시오 : 방화 광에서 클래스를 확인하십시오. http://jsbin.com/orifo/edit

저는 정말 혼란 스럽습니다. $ (this)는 최근에 클릭 한 버튼이 아니라 모든 버튼을 참조하는 것이 분명합니다. 왜 이런거야? 최신 클릭이 있어야하지 않습니까?

왜 이것이 작동하지 않는지 설명 할 수 있습니까?

감사합니다.

+0

그것은 나를 위해 일했습니다. 나는 을 추가했다.이 버튼 { background-color : yellow; } 그리고 내가 클릭 한 버튼은 노란색이되고 다른 버튼은 노란색이되었습니다. –

답변

1

왜 그렇습니까? 최신 클릭이 있어야하지 않습니까?

예, 클릭 한 사람입니다. 나를 위해 잘 작동합니다. 다음은 내가 테스트 한 정확한 스 니펫입니다.

<style> 
    .this-button { border: solid red 1px; } 
</style> 
<body> 
<div> 
    <button id="button1">Button1</button> 
    <button id="button2">Button2</button> 
    <button id="button3">Button3</button> 
</div> 
<script type="text/javascript" src="jquery-1.3.2.js"></script> 
<script type="text/javascript"> 
    $('button').live('click', function() { 
     $(this).addClass('this-button').siblings().removeClass('this-button'); 
    }); 
</script> 
</body> 
0

내 마지막에는 작동합니다. IE 7과 jQuery 1.32를 사용하고 있습니다.