当单击推文按钮时,我需要访问 data-url="some link"。
使用此代码:
twttr.events.bind('click', function(event) {
var tweeturl = $('.twitter-share-button').data("url");
var count = $('.twitter-share-button').data("count");
console.log(tweeturl, count);
});
但是控制台输出“未定义未定义”。谁能告诉我为什么会发生这种情况以及如何解决它?
查看完整的JS Fiddle 。
非常感谢大家。
最佳答案
获取 URL 很简单,只需使用以下 HTML:
<div id="foo" data-url="http://ios-blog.co.uk">
<!-- other html -->
</div>
以及此事件处理程序:
twttr.events.bind('click', function(event) {
var link = $(event.target).parent().data('url');
console.log(link);
});
Twitter 的 javascript 将 .twitter-share-button
链接转换为包含共享按钮 html 的 iframe。这意味着当您尝试在代码中选择它时,您实际上选择的 iframe 不具有链接所具有的 data-*
属性。
由于名为 Same-origin policy 的原因,您也无法获取 iframe 的内容并找到计数。 。
但是,您可以使用 Twitter 的 API 获取推文计数:
$.ajax({
dataType: "jsonp",
url: 'http://urls.api.twitter.com/1/urls/count.json?url=http://ios-blog.co.uk',
success: function (data) {
console.log(data.count);
}
});
请参阅此工作示例:http://jsfiddle.net/TDgX5/
但是,这不是官方推荐的方法,可能不应该过分依赖。可能有更好的方法来解决您的问题,您使用计数做什么?
关于jquery - 单击 Twitter 按钮时获取数据属性。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236039/