1
我有2個元素,一個嵌套在另一箇中。 (它是一個模態對話框)。當用戶點擊外部元素時,應該觸發功能closeModal
,如果用戶點擊內部元素(其子元素)中的li
,則應觸發另一個函數like
。點擊事件排除兒童(backbone.js)
問題:我看着其他solutions並試圖申請我的backbone.js查看,但它似乎並沒有工作。有什麼不同的東西需要改變嗎?
查看
ModalShowItemView = Backbone.View.extend({
el: '#modal_show_item',
events: {
'click div#modal': 'closeModal',
'click li#like' : 'like'
},
initialize: function() {
this.render();
this.clickHandler();
},
render: function() {
$(this.el).show().append(this.template(this.model.toJSON()));
},
clickHandler: function() {
var self = this;
$(this.el).click(function(e) {
if(e.target == self) {
self.closeModal();
}
});
},
closeModal: function() {
console.log('closemodal');
},
like: function() {
console.log('like');
}
});
你必須做event.preventDefault(); return false;裏面就像這樣事件不會冒泡...所以在這種情況下,當用戶點擊外部div時,他點擊內部div時會調用closeModal,就像被調用並且事件不會傳播一樣... – 2012-08-06 14:52:14