配合, 我点击单击单选按钮时设置骨干事件。 我有以下按钮:
<p><label for="pays">Pays now</label><input id="pays" name="pays" type="radio" value="1" class="_100"/></p>
<p><label for="pays2">Pays later</label><input id="pays2" name="pays" type="radio" value="2" class="_100"/>
我定义了这样的事件:
'click input[name=pays]:not(:checked)': 'radioChecked'
所以,据我了解,点击名为pays的输入时,它应该触发。
事情是,当我点击单选按钮时,没有触发任何事件。
如果我试试这个......
'click input[name=pays]': radioClicked
我可以通过一些标志修复此问题,但每次点击任何无线电时都会触发该事件。
有什么想法吗? 谢谢!
答案 0 :(得分:5)
我找到了解决方案。 我将事件声明更改为:
'click input[name=pays]:checked': 'onRadioClick'
所以现在当我点击名为pays的任何单选按钮时,它会触发,如果我使用:
$('input[name=pays]:checked').val()
我得到了被检查的无线电值,而不是第一个声明的。
谢谢!
答案 1 :(得分:1)
也许我没有完全理解,但似乎这应该可行。
$(document).ready(function () {
$('input[name="pays"]').click(function () {
if($(this).prop('checked')){
// do something here
console.log('i am checked');
}
});
});
// .prop available in jQuery 1.6 or above.
答案 2 :(得分:0)
我想这是来自你的View.Try在 radio 处理程序周围加上引号。
'click input[name=pays]': radioHandler
还有一条建议:我在使用较旧的Backbone varsions(&lt; 0.9)的教程时遇到了麻烦。所以检查你的Backbone版本。