2014-05-14 3 views
-1

나는 트위터를 따라 가며 버튼을 클릭하면 다음과 같이 바뀝니다. 다시 마우스를 올리면 unfollow로 바뀌고 unfollow를 클릭하면 따라 다니고 마우스가 아무렇지도 않게 나오더라도 문제가 생깁니다. 뭔가 여기 일입니다 .. (마지막 단계)이벤트가없는 경우 복원 할 수 있습니까?

HTML :

<div class="col-xs-2 menu followBlock"> 
    <button type="button" class="btn btn-primary btn-lg" data-follow="follow"> 
     <span class="glyphicon glyphicon-plus"></span> Follow 
    </button> 
</div> 

JS :

$(".followBlock").on('click', "button[data-follow=follow]", function(e) { 
    $btn = $(this); 
      $btn.html("<span class='glyphicon glyphicon-ok'></span> Following").removeClass('btn-primary').addClass('btn-success'); 
      $("button[data-follow=follow]").attr("data-follow", "unfollow"); 
      $btn.hover(function(e) { 
       $(this).html("<span class='glyphicon glyphicon-minus'></span> Unfollow").removeClass('btn-success').addClass('btn-danger'); 
      }, function(e) { 
       $(this).html("<span class='glyphicon glyphicon-ok'></span> Following").removeClass('btn-danger').addClass('btn-success'); 
      }) 


}); 
$(".followBlock").on('click', "button[data-follow=unfollow]", function(e) { 
    $btn = $(this); 
      $btn.html("<span class='glyphicon glyphicon-plus'></span> Follow").removeClass('btn-danger').addClass('btn-primary'); 


}); 

내 문제를 설명 jsfiddle : jsfiddle.net/TQ5nn/1/


도움말

+2

당신은 (쉽게) 익명 함수를 리 바인드 할 수없는 시도하십시오. 핸들러를 자신의 함수로 옮긴 다음'.on ('click', funcName)'과'.off ('click', funcName)'을 사용하십시오. – BenM

+0

jsfiddle을 살펴 보셨습니까? – Sekai

+2

상태를 처리하고 CSS 클래스를 토글하는 것이 좋습니다. –

답변

1

는이

$(".followBlock").on('click', "button[data-follow=unfollow]", function(e) { 
    $btn = $(this); 
    $btn.html("<span class='glyphicon glyphicon-plus'></span> Follow").removeClass('btn-danger').addClass('btn-primary'); 
    $btn.unbind('mouseenter mouseleave'); 
    $btn.attr('data-follow', 'follow'); 
}); 

jsfiddle

+0

감사합니다. 선생님! 덧글 대신 솔루션에 바로갔습니다! – Sekai

+1

문제 없습니다. 행운을 빕니다 –

관련 문제