2011-06-28 183 views
0

我将2个jQuery插件,Fancybox和Embedly(如jQuery oembed)组合起来。jQuery同步呼叫

在Fancybox onStart事件中,我获取链接的URL,调用oembed服务并将响应(视频)推回到lightbox中。

至少这就是我想要发生的:)我从oembed提供程序获取响应,但是我认为onStart函数已经在发生这种情况时完成了。

代码:

$('a').fancybox({ 
    type: 'html', 
    onStart: function(selectedArray, selectedIndex, selectedOpts) { 
      var url = selectedArray[selectedIndex].href; 
      $.embedly(url, { 
       success: function (oembed, dict) { 
      selectedOpts.content = oembed.html; 
       } 
      }); 
    } 
}); 

看来我需要同步处理呼叫?

感谢

回答

-1

试试这个

$('a').each(function(i, a){ 
      var url = a.href, $a = $(a); 
      $.embedly(url, { 
       success: function (oembed, dict) { 
        $a.fancybox({ 
        type: 'html', 
        onStart: function(selectedArray, selectedIndex, selectedOpts) { 
         selectedOpts.content = oembed.html; 

           } 
        }); 
        } 

       } 
      }); 
}); 
+0

不幸的是,这意味着我不能加载在画廊模式链路的集合。这就是为什么我需要在元素数组上调用fancybox并覆盖onstart中的内容。 –