如何将jQuery数据变量放入按钮而不是div

时间:2016-04-29 13:58:46

标签: javascript jquery

我有一个使用jquery的rails网站。我正在将“跟随”按钮从用户页面移动到搜索显示页面。

这意味着我必须更改javascript中的javascript,假设每个页面上只有一个关注按钮,javascript可以与页面上的许多关键按钮一起使用。这些按钮中的每一个都适用于搜索结果中的其他用户。

我的旧代码就像这样:

HTML:

= content_tag 'div', id: 'friends-data', data: {user_id: current_user.id, friend_id: user.id, is_following: true } do
= button_tag "Follow", class: 'btn btn-Follow followUser'

HTML(已编译):

<div id="friends-data" data-user-id="2" data-friend-id="8" data-is-following="true"></div>
<button name="button" type="submit" class="btn btn-follow followUser">Follow</button>

JS:

this.data = $('#friends-data').data();

我希望按钮有自己的数据。这样我的this.data就已经是数据了,我不必从上面的div中抓取它。这样JS就不会总是从第一个用户那里获取数据,但它会获取与该按钮相关的用户数据。

我的问题是this.data = $(this).data();不起作用。

例如:

<div id="friends-data" data-user-id="2" data-friend-id="8" data-is-following="true"></div>
<button name="button" type="submit" class="btn btn-follow followUser" data-user-id="2" data-friend-id="8" data-is-following="true">Follow</button>

$(document).ready(function(){
    $(".followUser").click(function(){
    window.alert($('#friends-data').data());
    window.alert(this.data());
  });
});

这会打印第一个警报,但不打印第二个警报。

1 个答案:

答案 0 :(得分:1)

改变这个:

window.alert(this.data());

用这个:

window.alert($(this).data());