2014-04-14 94 views
0

的父母,我有以下的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 “[对象HTMLButtonElement]”,这很好。但是,当我尝试删除整个.product div时,它不起作用。

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

感谢您的帮助!

+0

JavaScript中没有方法'parent()'。你可以使用$(ev.target).parent()'因为你使用jQuery或者使用'ev.target.parentElement' – sachinjain024

回答

1

尝试event.target.parentNodeevent.target.parentElement而不是“parent()”。我听说过DOM API中称为“parent()”的方法。