jQuery 同步调用

发布于 2024-11-17 16:59:19 字数 614 浏览 2 评论 0原文

我结合了 2 个 jQuery 插件,Fancybox 和 Embedly(如 jQuery oembed)。

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

好吧,至少这就是我想要发生的:)我从 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;
                }
            });
    }
});

看来我需要同步处理调用?

谢谢

I'm combining 2 jQuery plugins, Fancybox and Embedly (like jQuery oembed).

In the Fancybox onStart event I get the url of link, make a call to the oembed service and push the response (a video) back into the lightbox.

Well at least that's what I want to happen :) I'm getting a response back from the oembed provider but I think the onStart function has already completed by the time this happens.

The code:

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

It seems I need to process the call synchronously?

Thanks
Ben

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

゛清羽墨安 2024-11-24 16:59:19

试试这个

$('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;

                               }
                     });
                   }

                }
            });
});

Try this

$('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;

                               }
                     });
                   }

                }
            });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文