나는 AddThis JavaScript API로 작업하고 있습니다. 내가 여기에 설명되어 고민하고있어서자바 스크립트 콜백 함수에서 객체를 반환하기 위해 애 쓰고 있습니다.
http://support.addthis.com/customer/portal/articles/1137944-getting-counter-values-dynamically
나는 내가 "OBJ"개체에서 필요한 데이터를 얻을 수 있습니다 -하지만 그 방법 내에서. 내 jQuery 루프에서 사용할 수있는 전역 변수에 데이터를 반환 할 수 없습니다. 문제는 자바 객체에 대한 제한된 이해입니다. 여기 내 코드는 다음과 같습니다
addthis.addEventListener('addthis.ready', addthisReady);
function addthisReady() {
var myobj = {};
addthis.sharecounters.getShareCounts({service: ['facebook', 'twitter', 'pinterest'], countUrl: 'http://www.addthis.com/'}, function(obj) {
console.log(obj); // OK
myobj = obj;
});
console.log(myobj); // Not OK
}
내 궁극적 인 목표는 한 페이지에 여러 문서 링크가 다음 자신의 연결 제목으로 총 주식 수를 추가 할 jQuery를이 API 방법을 사용하는 것입니다. EG;
- 기사 링크 X (22 주)
- 제 링크 Y (13 주)
- 제 링크 Z (13 주식은)
어떤 도움 그랜드 될 것이다.
CJ
진행 UPDATE - 거의 다 ...
조언 요인 아래의 코드와 예제는 API 공급 업체에서 제공합니다. 거의 다 왔지만 콜백은 Each 루프의 요소 중 하나만 무작위로 업데이트합니다.
예제 코드 - 주석 처리 된 - 메서드에 대한 여러 호출이 가능해야 함을 나타냅니다. 여기
코드이다$(document).ready(function(){
addthis.addEventListener('addthis.ready', addthisReady);
function addthisReady() {
/*
addthis.sharecounters.getShareCounts('facebook', function(obj) {
document.getElementById('basic-example').innerHTML = '<code>'+JSON.stringify(obj, undefined, 4)+'</code>';
});
addthis.sharecounters.getShareCounts(['facebook', 'twitter', 'pinterest'], function(obj) {
document.getElementById('multiple-services').innerHTML = '<code>'+JSON.stringify(obj, undefined, 4)+'</code>';
});
addthis.sharecounters.getShareCounts({service: 'facebook', countUrl: 'http://www.addthis.com/'}, function(obj) {
document.getElementById('specific-url').innerHTML = '<code>'+JSON.stringify(obj, undefined, 4)+'</code>';
});
addthis.sharecounters.getShareCounts({service: ['facebook','twitter'], countUrl: 'http://www.addthis.com/'}, function(obj) {
document.getElementById('specific-url-multiple-services').innerHTML = '<code>'+JSON.stringify(obj, undefined, 4)+'</code>';
});
*/
$('.ico-shares').each(function(index) {
var elem = this;
var share_url = $(elem).attr('href').split('#')[0];
var shareLabel = $(elem).text();
var total_count = 0;
//Request Counts
addthis.sharecounters.getShareCounts({service: ['facebook', 'twitter'], countUrl: share_url}, function(obj) {
for (var key in obj)
{
total_count += obj[key].count;
}
if (total_count > 0)
{
shareLabel = total_count + ' Share';
}
if (total_count > 1)
{
shareLabel = total_count + ' Shares';
}
alert(shareLabel);
$(elem).text(shareLabel);
});
});
}
});
내 URL은 여기에 있습니다 : http://banarra.cjweb.com.au/html/news_article.php
주 하단에 3 × "더 뉴스"기사가 있지만 하나는 공유 링크가 업데이트되고 있습니다.
감사합니다.
CJ
여기를 참조하십시오. http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call – elclanrs
jQuery 루프는 어디에 있습니까? getShareCounts에 –
이 있으면 콜백을 비동기 적으로 호출합니까? 그렇다면 변수는 getShareCounts 호출 직후에 업데이트되지 않습니다. –