1

我有 2 个元素,一个嵌套在另一个元素中。(它是一个模态对话框)。当用户点击外部元素时,closeModal应该触发一个功能,如果用户点击li内部元素(其子元素)内的一个,则like应该触发另一个功能。

问题:我查看了其他解决方案并尝试应用到我的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');
    }
});
4

1 回答 1

0

您提到其他解决方案可能是您需要做的,除了在事件对象本身上执行.stopPropagation()as in event.stopPropagation()。我不知道通过delegateEventsget 绑定的事件处理程序传递了任何相关的事件对象,但它没有记录在帮助页面 AFAIK 上。

于 2012-08-06T14:58:29.670 回答