jQuery和Vimeo Froogaloop API

Dre*_*ker 6 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();
});
Run Code Online (Sandbox Code Playgroud)

你可以在行动中看到它temp.woodshop.tv/?work/?dickies-campaign/?.

我收到此错误:

TypeError:表达式'$ f(播放器).vimeoPlayer'[undefined]的结果不是对象.

Jon*_*man 17

一个问题是addEvent既是你定义的函数,也是$ f(player)对象的方法.你似乎对这两者感到困惑.$ f(player)对象的addEvent方法只接受两个参数,即player事件的名称和要调用的函数.它应该用作$ f(你的iframe).addEvent('vimeo event',your_function);

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

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

试试这个

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

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

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

我很难在Vimeo的Froogaloop api上找到我想要的信息但是在淘了Vimeo Froogaloop API Playground大约十几次之后我才开始了解它是如何工作的.

祝好运!