Javascript 主干事件获取元素类型
我有一个backbone.js应用程序,它有一个名为StoreProductView.js的视图:Javascript 主干事件获取元素类型,javascript,jquery,backbone.js,underscore.js,Javascript,Jquery,Backbone.js,Underscore.js,我有一个backbone.js应用程序,它有一个名为StoreProductView.js的视图: var StoreProductView = Backbone.View.extend({ events: { "click .changeProductType" : "changeProductType" }, render: function () { this.$el.append(render("products/product"));
var StoreProductView = Backbone.View.extend({
events: {
"click .changeProductType" : "changeProductType"
},
render: function () {
this.$el.append(render("products/product"));
},
changeProductType: function (e) {
console.debug(e.currentTarget.parentNode.next("li"));
}
});
当我调用console.debug(e.currentTarget.parentNode)
时,它返回:
<li>
<a class='changeProductType' data-type="book">Book</a>
</li>
DOM
HTMLElement
对象没有.next()
方法,您可能正在尝试对非jQuery对象调用jQuery.next()
方法,如果要获取原始DOM元素的下一个元素,应该读取该属性
如果要调用jQuery.next()
方法,应首先创建jQuery对象:
$(event.currentTarget).parent().next('li');
要读取data-*
属性,可以使用jQuery.data()
方法:
$matchedElement.find('a').data('type');
$(event.currentTarget).data('type');
尽管如此,因为currentTarget
属性引用了单击的元素,所以您不需要。next()
方法:
$matchedElement.find('a').data('type');
$(event.currentTarget).data('type');
为什么不包括当前出错的代码?