2013-11-25 6 views
0

내 링크의 클래스가 "재 바인드"인 경우 버튼의 이벤트를 클릭하십시오. 나는이 방법으로 노력했다 (jsFiddle : http://jsfiddle.net/D6Qh5/) :jQuery 바인딩 해제 이벤트가 작동하지 않습니다.

$('#button').bind('click', function(){ 
    $(this).after('<span> click is active</span>'); 
    $('span').fadeOut(1000); 
}); 

$('#toggle').toggle(
    function(){ 
     $(this).text('rebind').removeClass('unbind').addClass('rebind'); 
    }, 
    function(){ 

    $(this).text('unbind').addClass('unbind').removeClass('rebind'); 
    } 
); 

if($("#toggle").hasClass("unbind")) { 
    $('#button').bind('click'); 
} 
else { 
    $('#button').unbind('click'); 
} 

그러나 바인딩 해제이 작동하지 않습니다와 나는 방화범에 어떤 오류가 발생하지 않습니다. 내가 뭘 잘못했는지 모르겠다.
도움을 주시면 감사하겠습니다. 고맙습니다!

답변

2

바인드 바인드 해제 메소드가 잘못 배치되었습니다. 방법은 부착 요소 이벤트 핸들러를 제거하기 위해 바람직하다 jQuery를 1.7의 CSTE 연구진() 및 .OFF() 등의

또한
$('#button').on('click', Button_Click); 

function Button_Click(){ 
    $(this).after('<span> click is active</span>'); 
    $('span').fadeOut(1000); 
} 

$('#toggle').toggle(
    function(){ 
     $(this).text('rebind').removeClass('unbind').addClass('rebind'); 
      $('#button').unbind('click'); 

    }, 
    function(){ 

    $(this).text('unbind').addClass('unbind').removeClass('rebind'); 
      $('#button').bind('click',Button_Click); 
    } 
); 

http://jsfiddle.net/FtATg/
.

+0

대단히 감사합니다! –