Javascript 主干事件向单选按钮添加额外事件

Javascript 主干事件向单选按钮添加额外事件,javascript,events,backbone.js,radio,Javascript,Events,Backbone.js,Radio,我有一套单选按钮,我正在测试,将用于改变主题。Html代码是直截了当的 <div id="options"> <input type="radio" name="imm" id="themea" value="a" /> Theme 1 <input type="radio" name="imm" id="themeb" value="b" /> Theme 2 </div> 我就是这样初始化视图的: events: {

我有一套单选按钮,我正在测试,将用于改变主题。Html代码是直截了当的

<div id="options">
    <input type="radio" name="imm" id="themea" value="a" /> Theme 1
    <input type="radio" name="imm" id="themeb"  value="b" /> Theme 2
</div>  
我就是这样初始化视图的:

events: {
    "click input[type=radio]": "onRadioClick"
},
onRadioClick: function (e) {
    // e.stopPropagation();
    var self = this
    _.bindAll(self)

    $("input:radio[name=imm]").click(function (){
        var somval =  $(this).val();  
        alert(somval)
    });
initialize: function(state) {
    var self = this
    _.bindAll(self)

    self.state = state
    self.setElement('#options')

    self.elem = {
        imm: self.$el.find('#imm')
    }
}

为什么要在RadioClick中再次绑定click事件?这是您的问题。@dfsq您是100%正确的。Mark-Backbone已经为您提供了一个单击事件,不需要同时连接jQuery单击事件。另外,您不需要检查它是否已经绑定,jQuery事件是基于订阅的,因此每次您向“单击”事件链添加新事件时,都会在原始主干事件之上。只需删除jQuery事件,就可以了。#感谢您的回答。我再次点击的原因是给了我点击的选项。显然,这导致了当时的循环。当我写入警报($(“输入:radio[name=imm]”)时。val()。我总是把第一个选择拿回来,任何想法现在都可以把实际选择的一个拿回来。我想我在这里遗漏了一些东西,尝试了大量精选的、有价值的组合etc@MarkOKeeffe发布一个JSFIDLE链接,其中包含复制该问题的所有相关代码,我来看看。@MarkOKeeffe顺便问一下,您是否尝试了
$(e.target).val()