2015-06-19 5 views
0

Когда я нажимаю кнопку «Продолжить», некоторое текстовое поле должно отображаться в div, но этого не происходит. Вот мой код.События Backbone.js не работают

HTML файл:

<button class="btn btn-success pull-right" id="3continue" 
             type="button"> 

мой Javascript Файл:

events:{ 
      'click button#3continue': 'displayCoupon' 
      }, 
    initialize: function(){ 
      var self=this; 
      _.bindAll(this,'render','addProductDetails','displayCoupon'); 

      this.collection = new List(); 
      this.addProductDetails(); 
     }, 

    displayCoupon: function(){ 
     //e.preventDefault(); 
     console.log("in displayCoupon"); 
     $('#couponcheck').empty(); 
     $('#couponcheck').append('<div class="col-xs-8"><input type="text" class="form-control" id="enterCoupon"></div>'); 
     $('#couponcheck').append('<div class="col-xs-8"><button type="button" class="btn btn-success btn-sm" id="couponbutton">Apply</button></div>'); 


}, 
+2

Просто подсказка: вам не нужно связывать «displayCoupon» с bindAll , потому что вы не используете 'this' в этой функции. Даже в том случае, если вы его использовали, вам не нужно связывать его, потому что с хэшем 'events' область' this' не изменяется. – MiguelSR

+0

Это '

+0

@muistooshort Нет его не внутреннего вида el –

ответ

-1

Пожалуйста, попробуйте следующее:

Html:

<button class="btn btn-success pull-right" id="clickMe" 
              type="button"> 

Javascript:

events:{ 
      'click #clickMe': 'displayCoupon' 
      }, 
    initialize: function(){ 
      var self=this; 
      _.bindAll(this,'render','addProductDetails','displayCoupon'); 

      this.collection = new List(); 
      this.addProductDetails(); 
     }, 

    displayCoupon: function(){ 
     //e.preventDefault(); 
     console.log("in displayCoupon"); 
     $('#couponcheck').empty(); 
     $('#couponcheck').append('<div class="col-xs-8"><input   type="text" class="form-control" id="enterCoupon"></div>'); 
     $('#couponcheck').append('<div class="col-xs-8"><button type="button" class="btn btn-success btn-sm" id="couponbutton">Apply</button></div>'); 


}, 

В своем коде вы написали

events:{ 
     'click button#3continue': 'displayCoupon' 
     }, 

попробуйте заменить выше кода с кодом ниже:

events:{ 
     'click #3continue': 'displayCoupon' 
     }, 
+0

Я пробовал это, но его не работало. другие события кликов работают. –

+0

http://jsfiddle.net/kishorsawant8707/rL3c6vgk/1/ –

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