Ho creato un esempio molto rapido di attivazione di avviso due volte su Vista dorsale.Il clic sta chiamando la funzione due volte sul backbone
http://jsfiddle.net/feronovak/8svqX/
Questo è non fa nulla di speciale, è davvero per me capire come chiamare correttamente separati Visualizzazioni, così essi non innescare precedente metodo click. In questo momento creo due viste, la seconda vista sovrascrive il modulo in #boxSearch. Quando faccio clic sul pulsante Cerca, viene generato anche l'avviso doSearch SearchLocation
. Mi aspettavo di vedere solo l'avviso doSearch SearchLatitude
. Cosa ho fatto di sbagliato?
var Geo = {
Views: {},
Templates: {}
};
Geo.Templates.SearchLocation = _.template($("#tpl-search-location").html());
Geo.Templates.SearchLatitude = _.template($("#tpl-search-latitude").html());
Geo.Views.SearchLocation = Backbone.View.extend({
initialize: function() {
this.render();
},
el: $("#boxSearch"),
template: Geo.Templates.SearchLocation,
render: function()
{
$(this.el).html(this.template);
},
events: {
"click input[type=button]": "doSearch"
},
doSearch: function(e) {
e.preventDefault();
alert('doSearch SearchLocation');
}
});
Geo.Views.SearchLatitude = Backbone.View.extend({
initialize: function() {
this.render();
},
el: $("#boxSearch"),
template: Geo.Templates.SearchLatitude,
render: function()
{
$(this.el).html(this.template);
},
events: {
"click input[type=button]": "doSearch"
},
doSearch: function(e) {
e.preventDefault();
alert('doSearch SearchLatitude');
}
});
$(document).ready(function(e) {
var searchLocation = new Geo.Views.SearchLocation();
var searchLatitude = new Geo.Views.SearchLatitude();
});
Questa è un'ottima risposta. Ha davvero buoni dettagli e spiega perché è un problema e come risolverlo. Grazie mille. – Termato