バックボーンビューでアラートを2回トリガーする非常に簡単な例を作成しました。
http://jsfiddle.net/feronovak/8svqX/
これは特別なことではありません。個別のビューを正しく呼び出す方法を理解するのは本当に重要なので、前のクリックメソッドをトリガーしません。現在、2つのビューを生成しています。2番目のビューは#boxSearchのフォームを上書きします。[検索]ボタンをクリックすると、アラートも生成されますdoSearch SearchLocation
。アラートのみが表示されることを期待していましたdoSearch SearchLatitude
。私が間違ったことは何ですか?
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();
});