2011-04-24 4 views
1

"go"라는 클래스의 일부인 페이지에 버튼이 있습니다. 나는 다음과 같은 코드를 사용AJAX 사용시 jQuery live()와의 충돌 해결

$(".go").live('click', this.handleAction); 

나는 또한 위의 버튼 및 내용을 대체 할 HTML과 JS의 또 다른 조각을로드 아약스 이벤트를 가지고 있지만, 그것은 또한 충돌 할 수있는 코드의 조각을 가지고 :

$(".go").live('click', this.handleAnotherAction); 

분명히 대답하는 것은 클래스 이름을 "이동"이외의 다른 것으로 변경한다는 것입니다. 그러나 새로운 AJAX 삽입 요소의 클래스 이름을 변경하지 않고이 작업을 수행하는 다른 방법이 있습니까? 어쩌면 live() 바인딩을 재설정하는 방법이 있을까요?

+0

정확하게 귀하의 질문은 무엇입니까 : die에 대한 당신의 선택은 정확히 live에 사용되는 셀렉터에 일치해야합니다? 귀하의 설명은 혼란 스럽습니다. – Eli

답변

3

요소에서 live 바인딩을 제거하려면 die 바인딩 해제 기능을 사용해야합니다.

// create live bindings: 
$(".go").live('click', this.handleAction); 

// remove live bindings: 
$(".go").die('click'); 

// you can also specify the method you want to unbind, in case there are multiple live bindings: 
$(".go").die('click', this.handleAction); 

// rebind to a new live 
$(".go").live('click', this.handleAnotherAction); 
0

나는 당신을 이해하고 있다면, 당신은 죽을 사용해야합니다. 같은

뭔가 :

$(".go").die("click") 

다음 라이브를 호출하기 전에.