如何从单击的链接中正确捕获data-rel

时间:2014-04-13 16:36:46

标签: javascript jquery backbone.js

我有一个自动填充用户列表的表,我正在尝试捕获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中,所以这可能指向其他地方。

1 个答案:

答案 0 :(得分:1)

您应该能够从event.currentTarget获取元素并将event传递给您的回调函数

DV_Show: function (e) {
  e.preventDefault();
  var id = $(e.currentTarget).data('rel');
  console.log (id);
}

您的示例不起作用,因为Backbone使用this变量将其绑定到视图本身。