jQuery Pass对象通过.On()没有事件属性

时间:2016-04-26 17:09:39

标签: javascript jquery

如何将对象self传递给'点击'事件?目前它传递的jQuery.Event对象包含data属性和我的对象,但我希望对象为jPlayer,而不是jQuery.Event

我想要这个的原因是当在事件上调用函数时代码不起作用,因为我必须通过jPlayer.data.jPlayer访问数据,如果我这样做,那么{{1赢了工作。

changeShuffleIcon(self);

...

ready: function() {
    var self = this;
    changeShuffleIcon(self);

    $(".jp-shuffle").on("click", { jPlayer: self }, changeShuffleIcon);
}

(为简洁起见,删掉一些代码。)

1 个答案:

答案 0 :(得分:1)

你可以这样做:

function changeShuffleIcon(jPlayer, isNotEvent)
{
    if(!isNotEvent)
    {
        jPlayer = jPlayer.data.jPlayer;
    }
    if ($(jPlayer).hasClass("jp-state-shuffled")) {
        $(".jp-shuffle").children().addClass("clicked-button");
    } else {
        $(".jp-shuffle").children().removeClass("clicked-button");
    }
}
ready: function() {
    var self = this;
    changeShuffleIcon(self, true);

    $(".jp-shuffle").on("click", { jPlayer: self }, changeShuffleIcon);
}