2016-05-27 3 views
1

У меня есть следующий код и он работает в каждом браузере, кроме Google Chrome. Я хочу, чтобы каждый раз, когда я нажимаю на опцию, чтобы предупредить меня, выберите текст «Вы выбрали (выбранный номер опции)». Я не могу заставить его работать.Событие clickbone click не запускается в Google 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

Вместо того, чтобы слушать за клик по 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/

+0

Это сработало. Спасибо!! – MavrosGatos

Смежные вопросы