我有一个自动填充用户列表的表,我正在尝试捕获data-rel属性,以便我可以查询数据库,检索用户数据并显示它。我无法解决的问题是,当我尝试捕获数据相关值时,我得到的结果是:undefined。
以下是如何在页面上呈现HTML的示例
<td>
<a href="#" class="linkshowuser" data-rel="531fe2cef46de62a24a0a8ab" title="Show Details">user2</a>
</td>
<td>
<a href="#" class="linkshowuser" data-rel="531fe513dfd24a9d24ebb0c5" title="Show Details">user2</a>
</td>
要捕获点击,我在BackboneView上使用以下事件
// ### Details View (DV) ###
'click td a.linkshowuser': 'DV_Show'
到目前为止一直很好,这是因为我正确地识别出点击并且触发了DV_Show功能
DV_Show: function () {
event.preventDefault();
var id = $(this).data('rel');
console.log (id);
}
我现在唯一想做的就是确保我获得了id变量的数据相关信息,但这不会发生。
我从控制台获得的输出是:undefined,我认为这是因为这不是指向链接,但我不知道正确的方法。
我在Stackoverflow上看到过关于此问题的其他问题,所有这些问题都使用了THIS关键字,但我认为不同之处在于我将它放在Backbone View中,所以这可能指向其他地方。
答案 0 :(得分:1)
您应该能够从event.currentTarget
获取元素并将event
传递给您的回调函数
DV_Show: function (e) {
e.preventDefault();
var id = $(e.currentTarget).data('rel');
console.log (id);
}
您的示例不起作用,因为Backbone使用this
变量将其绑定到视图本身。