Backbone点击事件未在Google Chrome中触发

时间:2016-05-27 12:00:09

标签: javascript jquery google-chrome backbone.js frontend

我有以下代码,它适用于除Chrome浏览器之外的所有浏览器。 我想每次点击一个选项,通过“您选择的选项(选择的选项编号)”文本提醒我。 我无法使它发挥作用。

var MyView = Backbone.View.extend({

    el : "#eventPage",

    initialize : function(options) {
        _.bindAll(this, 'render', 'changeNum');
        this.render();
    },

    render : function(){
        var a = [];
        var b = 0;

        a[b++] = '<div>';
        a[b++] = '  <select id="select">';
        a[b++] = '      <option class="sel" id="1">ONE</option>';
        a[b++] = '      <option class="sel" id="2">TWO</option>';
        a[b++] = '      <option class="sel" id="3">THREE</option>';
        a[b++] = '  </select>';
        a[b++] = '</div>';

        $(this.el).html(a.join(""));
    },

    events : {
        "click #select .sel":"changeNum"
    },

    changeNum : function(e){
        alert("You selected option "+$(e.currentTarget).attr("id"))
    }
});

1 个答案:

答案 0 :(得分:1)

您应该聆听option元素的更改,而不是聆听点击select元素:

events: {
    "change #select":"changeNum"
}

然后在changeNum功能中,您可以获得所选的选项:

changeNum: function(e) {
    alert("You selected option "+$(e.currentTarget).find('option:selected').attr('id'));
}

这是一个工作小提琴:https://jsfiddle.net/vt7t47br/