jQuery 和 Vimeo Froogaloop API

标签 jquery events vimeo froogaloop

我正在为 WordPress 构建一个插件,到目前为止,PHP 库表现良好。但我在使用 JavaScript API 时遇到了一些问题。

我正在尝试将它与 jQuery 一起使用,并且我认为 WordPress 版本的 jQuery 与 $f 快捷方式混淆了。为什么这不起作用?

var vimeoPlayer = {

    init: function() {
        var vimeoPlayers = document.querySelectorAll('iframe'),
        player;

        jQuery('iframe.vimeo-player').each(function(index, iframe){
            player = vimeoPlayers[index];
            $f(player).vimeoPlayer.addEvent('ready', vimeoPlayer.ready);
        });
    },

    addEvent: function(element, eventName, callback) {
        if (element.addEventListener) {
            element.addEventListener(eventName, callback, false);
        }
        else {
            element.attachEvent(eventName, callback, false);
        }
    },

    ready: function(player_id) {
        alert(player_id);
    }
}

jQuery(document).ready(function($){
    vimeoPlayer.init.call();
});

您可以在 temp.woodshop.tv/?work/?dickies-campaign/? 上看到它的实际效果。

我收到此错误:

TypeError: Result of expression '$f(player).vimeoPlayer' [undefined] is not an object.

最佳答案

一个问题是 addEvent 既是您定义的函数,也是 $f(player) 对象的方法。看来您混淆了两者。 $f(player) 对象的 addEvent 方法仅接受两个参数,即玩家事件的名称和要调用的函数。它应该用作 $f(your-iframe).addEvent('vimeo event', your_function);

您的 addEvent 函数将统一 IE 和 W3C 方法之间的事件。不需要它,因为您正在使用 jQuery。 jQuery(whatever).click() 做同样的事情。我没有看到您需要的代码片段的任何部分,但如果您需要,我只会使用 jQuery 方法。

此外,视频播放器对象应该是 $f(player) 而不是 $f(player).vimeoPlayer

试试这个

jQuery('iframe.vimeo-player').each(function(){
    $f(this).addEvent('ready', ready);
});

另一件事需要注意的是,任何其他玩家事件都需要从您准备好的回调函数中添加。例如:

function ready(player_id){
    $f(player_id).addEvent('play', play);
    $f(player_id).api('play');
    alert("Ready!!!");
}
function play(){
    alert("Playing!!!");
}

我很难在 Vimeo 的 Froogaloop api 上找到我想要的信息,但经过搜索 Vimeo Froogaloop API Playground大约十几次我开始了解它是如何工作的。

祝你好运!

关于jQuery 和 Vimeo Froogaloop API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999357/

相关文章:

php - Vimeo API 响应中缺少文件数组

javascript - 使用 mootools 的点击请求

javascript - 我可以使用哪个函数代替 parseJSON jquery 版本 1.3.2

javascript - 单击元素外部时更改 CSS 高度

java - Java 中的 Action 事件

vimeo - 以编程方式获取私有(private) Vimeo 视频的 URL/嵌入代码

javascript - php post 返回 true 或无错误后 AJAX 重定向

javascript - jQuery .lastLoad 的几个事件

Javascript - 在 Chrome 53 上模拟按键事件

javascript - 无法检测到 jQuery 单击 vimeo iframe