2011-12-19 5 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

に代わり$(this)を使用してくださいあなたはvar $this = $(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

1

$this不適切に宣言されています。ライン6

http://jsfiddle.net/PxkpC/

+0

配列にパラメータをラップすると、要素にアクセスすることができます(つまり、alert(value [0])) – Sinetheta