2016-05-27 4 views
1

次のコードがあり、Google Chrome以外のすべてのブラウザで動作します。 オプションをクリックするたびに、「あなたが選択したオプション(選択されたオプション番号)」というテキストが表示されます。 私はそれを動作させることはできません。むしろ、あなたのoption要素のクリックをリッスンより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

、あなたはあなたのselect要素に変更をリッスンする必要があります

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

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

次に、あなたのchangeNum機能で選択したオプションを取得することができます

ここでは動作中のフィドルです:https://jsfiddle.net/vt7t47br/

+0

それは働いた。ありがとうございました!! – MavrosGatos

関連する問題