2011-12-19 2 views
1
var $forms = $('form.vote'); 
$forms.submit(function(){ 
    return false; 
}); 
$('.votebtn').on('click',function(){ 
    $this.closest('form').trigger('vote_now', [$(this).val()]); 
}); 

$forms.on('vote_now',function(value){ 
    alert(value); 
}); 

vote_now 트리거되어야하며 값이 잘못 표시됩니다. 이게 뭐야?.trigger() a .on()

http://jsfiddle.net/6ZHy4/

+1

당신은 http://jsfiddle.net에서이 문제를 다시 수 있을까요? – JesseBuesking

+0

http://jsfiddle.net/6ZHy4/ – Michelle

답변

1

당신은 var $this = $(this);을 잊어 선 6 $(this)를 사용하고 여분의 인수는 이벤트 객체 후 를 전달됩니다.

JSFIDDLE DEMO

var $forms = $('form.vote'); 
$forms.submit(function(){ 
    return false; 
}); 
$('.votebtn').on('click',function(){ 
    var $this = $(this); // declare variable 
    $this.closest('form').trigger('vote_now', [$(this).val()]); 
}); 
            // second argument, not first. 
$forms.on('vote_now',function(e, value){ 
    alert(value); 
}); 
+1

아, 내 잘못이라고 고맙다. 당신! – Michelle

+0

여기에서 무엇이 잘못되었는지 확인할 수 있습니까? 클래스에 버튼을 추가하고 있습니다. http://jsfiddle.net/XbSp6/1/ – Michelle

+0

@ user1099531 :'disabled' 클래스가 추가되지 않았습니까? 콜백을하지 않는 addClass에 콜백 함수를 전달하려고하기 때문입니다. (아마도 jQueryUI가로드 된 경우에는 가능합니다.) [여기 업데이트 됨] (http://jsfiddle.net/XbSp6/2/) – RightSaidFred