无法删除有事件的元素的父级

时间:2014-04-14 02:25:12

标签: javascript jquery backbone.js underscore.js

我有以下html:

<script type="text/x-handlebars-template" id="product-template">
<div class='product'>
  <button class='changeProductType'>Change</button>
</div>

var ProductView = Backbone.View.extend({
    el: ".container",

    initialize: function() {
        _.bindAll(this, 'render','changeProductType');

        this.render();
    },

    events: {
        "click .changeProductType": "changeProductType"
    },

    render: function() {
        var source = $('#product-template').html();
        var template = Handlebars.compile(source);
        var html = template(this.model.toJSON());
        this.$el.html(html);
    },


    changeProductType: function(ev){
        var removeThis = ev.target.parent();
        //alert(removeThis);

        $("#changeProductTypeModal li a").on('click', function(){
                            removeThis.remove();
            $.modal.close();
        });
    }

});

当我提醒ev.target时,它会显示“[object HTMLButtonElement]”,这很好。但是当我尝试删除整个.product div时,它不起作用。

我得到的错误是Uncaught TypeError: Cannot read property 'parent' of undefined。那么如何删除被点击的按钮的父元素呢?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

尝试event.target.parentNodeevent.target.parentElement而不是&#34; parent()&#34;。我听说过一种名为&#34; parent()&#34;在DOM API中。