2015-09-03 24 views
0

我正在使用Twitter中的以下按鈕來推特。未使用jQuery設置Twitter數據文本屬性

<a id="tweet" href="https://twitter.com/share" class="twitter-share-button" data-text="Husam" data-size="large" data-count="none">Tweet it!</a> 

    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs'); 
    </script> 

在我的JS文件,我想使用jQuery ATTR功能改變的數據文本屬性,因此它的鳴叫我想鳴叫什麼。

$("#tweet").attr("data-text","what I want to tweet"); 

它只是不按預期工作,我無法更改數據文本屬性。有任何想法嗎?

你可以看到這裏的代碼:http://codepen.io/husamp/pen/YyKLze

+0

嘗試使用'$(「#鳴叫」)的數據(「文」,「你要什麼鳴叫」)'當你檢查元素'#tweet'屬性數據文字不會顯示。但是當你使用'$('#tweet')。data('text')來請求時,你會看到「你想要發佈的消息」。 –

回答

0

我覺得發生了什麼是<a id="tweet" ...被替換爲一個iFrame當Twitter的JavaScript的評價讓你$(#tweet)實際上不會找到所以沒有數據屬性設置的任何元素。

查看Tweet Button Reference,並考慮使用JavaScript Factory示例在每次引用更改時重新創建推文按鈕。

來自Twitter的示例代碼是:

twttr.widgets.createShareButton(
    "https:\/\/dev.twitter.com\/web\/tweet-button", 
    document.getElementById("tweet-container"), 
    { 
      size: "large", 
      via: "twitterdev", 
      related: "twitterapi,twitter", 
      text: "PUT UPDATED SHARE TEXT HERE", 
      hashtags: "example,demo" 
    } 
); 

所以在報價的變化,你需要清除舊的鳴叫按鈕,然後插入一個新的進入#tweet-container

+0

謝謝伊恩,這很好解釋。 – Husamp

0

您可以獲取和設置使用https://api.jquery.com/data/

要設置值

$('#tweet').data('text', 'what I want to tweet'); 
數據值3210

來獲取值

$('#tweet').data('text');