2014-04-14 127 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()」的方法。