【发布时间】:2014-07-30 15:56:35
【问题描述】:
我正在编写一个简单的函数,它获取帖子的 URL,然后返回它在 Twitter 上被分享的次数。一个页面上有多个帖子,所以我需要为每个帖子运行该功能。下面是相关函数(注意我用的是RequireJS)。
function twitterCount($target) {
$article = $target.closest($('article')),
articleHREF = $target.parent().parent().attr('data-href');
APIURL = 'https://cdn.api.twitter.com/1/urls/count.json';
//Get count and set it as the inner HTML of .count
$.getJSON(APIURL + "?callback=?&url=" + articleHREF, function(data) {
$target.find('.count').html(data.count);
});
}
getTwitterCount: function() {
$twitterLink.each(function() {
$target = $(this);
$target.function(twitterCount($target));
});
}
该函数正确运行一次,并给我页面上第一个帖子被喜欢的次数,但随后停止工作并吐出 Uncaught TypeError: undefined is not a function in控制台。我正在努力了解为什么它会运行一次但不适用于其他所有帖子。错误指向以下行...
$target.function(twitterCount($target));
应该输出的HTML在下面
<ul class="share-options" data-href="http://localhost/test-post/">
<li><a class="twitter" href="javascript:void(0)">
Twitter <span class="count twitter-count"></span>
</a></li>
<li><a class="linkedin" href="javascript:void(0)">LinkedIn</a></li>
</ul>
【问题讨论】:
-
请从控制台添加 html 和错误。应该得到一个行号,可以帮助您了解问题所在
-
有问题的行应该做什么?只是想将
$target传递给twitterCount()吗?你在哪里定义$twitterLink? -
脚本比较长,所以我不想全部粘贴进去。$twitterLink 只定义了$('.twitter')。有问题的行应该将当前正在迭代的项目传递给 twitterCount 函数。
-
这里有点迷糊,
$target.function(twitterCount($target));要做什么?
标签: javascript jquery loops each