2013-05-09 25 views
0

我使用下面的代码只是让我从一个特定的YouTube视频观看计数,并把它与ID的DIV:ytviews:如何从ajax加载的页面上的YouTube api获取数据?

var video_id='gRcGLk6izZ0'; 
$.getJSON('http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',function(data){ 
document.getElementById('ytviews').innerHTML = (data.data.viewCount); 
}); 

Example

这里是我的问题:

div我将视图计数驻留在通过AJAX加载的页面上。因此,当我在加载AJAX的情况下访问页面时,视图计数不会显示。

这里的AJAX代码:

$(function() { 
    var b = "", 
     a = $("#main-content"); 
    $("#page-wrap"); 
    $(document).delegate(".dyn a", "click", function() { 
     window.location.hash = $(this).attr("href"); 
     return !1 
    }); 
    $(window).bind("hashchange", function() { 
     String.prototype.toTitleCase = function (b) { 
      var a = this; 
      1 !== b && (a = a.toLowerCase()); 
      return a.replace(/\b[a-z]/g, function (a) { 
       return a.toUpperCase() 
      }) 
     }; 
     b = window.location.hash.substring(1); 
     document.title = window.location.hash.replace("#", "").replace(/[_]/g, " ").replace(".html", "").replace("and", "+").toTitleCase(); 
     b && a.find("#guts").fadeOut(200, function() { 
      a.hide().load(b + " #guts", function() { 
       a.fadeIn(200); 
       $(".dyn a").removeClass("current"); 
       $(".dyn a[href=" + b + "]").addClass("current") 
      }) 
     }) 
    }); 
    $(window).trigger("hashchange") 
}); 

我不得不与Facebook同样的问题喜欢,我用下面的代码,以使FBML后AJAX内容已经被插入到DOM来重新分析解决:

$(document).ajaxComplete(function(){ 
    try{ 
     FB.XFBML.parse(); 
    }catch(ex){} 
}); 

我试图把这个ajaxComplete解决方案,这还挺正常,只是它让Facebook的链接发疯和Flash在网页中我的观点计数代码。

任何人都可以帮助我了解如何在AJAX内容加载完成后成功加载。

在此先感谢!

+0

你能证明加载页面的AJAX代码?您应该能够将上面的$ .getJSON放入该代码的成功回调中。 – mccannf 2013-05-09 13:39:37

+0

@mccannf我用AJAX代码更新了我的问题。你能告诉我成功回调的地方吗? – AshBestos 2013-05-09 13:47:05

回答

1

load回调,您可以添加$ .getJSON:

... 
    b && a.find("#guts").fadeOut(200, function() { 
     a.hide().load(b + " #guts", function() { 
      a.fadeIn(200); 
      $(".dyn a").removeClass("current"); 
      $(".dyn a[href=" + b + "]").addClass("current"); 
      $.getJSON('http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',function(data) { 
        $('#ytviews').html(data.data.viewCount); 
      }); 
     }) 
    }) 
    ... 
+0

是的!这样可行。现在我明白了它的意义。感谢@ mccannf – AshBestos 2013-05-09 13:59:39

相关问题