2016-04-29 80 views
0

我有一個使用jQuery的rails網站。我將我的「關注」按鈕從用戶頁面移到搜索顯示頁面。如何獲得一個jQuery數據變量按鈕不div div

這意味着我必須從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

'this'比'$(本)'不同。 –

回答

1

改變這一點:

window.alert(this.data()); 

與此:

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