0

Следующий щелчок кнопки работает только при загрузке страницы, а не после маршрутизации. 1) отобразить страницу по умолчанию 2) Нажмите кнопку «нажмите здесь» (это работает) 3) Нажмите другую кнопку для маршрутизации (без перезагрузки страницы, очистки содержимого и создания нового вида, чтобы вернуться к страница по умолчанию) 4) Нажмите эту опцию, чтобы вернуться к умолчанию. 5) Без перезагрузки снова переделайте страницу с дефектом. 6) Нажмите на кнопку «нажмите здесь» (Это не работает)backbone.hammer.js, событие не запускается второй раз

Вот код

var LPRouter = Backbone.Router.extend({ 

    initialize: function (options) { 
     this.pageContent = $('#pageContent'); 
    }, 

    routes: { 
     'AA': 'routerMethod', 
     '': 'defaultMethod' 
    }, 

    defaultMethod: function() { 
     //TODO: Set page title. 

     var self = this; 

     self.pageContent.empty(); 

     if (!self.someView) { 
      self.someView = new SomeView(); 
      self.someView.render(); 
     } 

     self.pageContent.append(self.someView.el); 

     /* 
     Create a view with some link or button which will redirect to routerMethod. 
     */ 
    }, 

    routerMethod : function() { 
     this.pageContent.empty(); 
     /* 
      Create a view with some link or button which will redirect to defaultMethod. 
     */ 

    } 

}); 

var SomeView = Backbone.View.extend({ 

    tagName: "div", 

    className: "someclass", 

    initialize: function (options) { 

    }, 

    hammerEvents: { 
     'tap .innerclass': 'someMethod' 
    }, 

    someMethod: function (e) { 
     alert("did you click me?"); 
    }, 

    render: function() { 
     this.$el.append("<div class='innerclass'><input type='button' value='click here'/></div>"); 
     return this; 
    } 

}); 

ответ

1

рендеринге функция создаст новую кнопку каждый раз, так что это событие - которое было связанный с исходным элементом кнопки - не привязан к новому элементу кнопки. Вы можете использовать метод delegateEvents() для перезаписи событий hash - http://backbonejs.org/#View-delegateEvents

+0

Но я проверяю объект вида уже существующий или нет, основываясь только на том, что я создаю новый объект. – Nageswaran

+0

И почему делегат ?, Я использую hammerEvents. – Nageswaran

+0

Я планировал удалить представление и повторно отобразить его. – Nageswaran

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