Javascript将参数传递给on('play')eventHandler

时间:2015-08-22 20:48:58

标签: javascript jquery html5

我为play元素上的html5视频创建了一个eventHandler,并将其绑定为像videoElement.on('play',eventHandler),但我似乎无法传递参数。我试过用它来传递它。我试过在.on()之后添加.bind。然后我尝试了IIFE,似乎没有任何工作。我似乎无法在我的控制台中找到我的参数。

一直在寻找任何帮助将不胜感激!似乎我仍然需要学习关于jQuery的分配。

评论是我尝试过的一些内容。 JSFiddle:https://jsfiddle.net/4ghfdodg/

$(document).ready(function(){
    var parameters = "someString";
    $("video").on('play', logModal);
});

function logModal(e) {
    console.log(e);
}

//$("video").on('play', parameters, logModal);
//$("video").on('play', logModal).bind(parameters);
//$("video").on('play', logModal).bind('data', parameters);

1 个答案:

答案 0 :(得分:2)

添加可以传递事件的函数:

$(document).ready(function(){
    var parameters = "someString";
    $("video").on('play', function(e){ logModal(e, parameters); }); // <-- function
});

function logModal(e, parameters ) { console.log(e + '\n' + parameters); }

编辑:我注意到你试图绑定一个事件监听器,这就是你如何将一个上下文绑定到一个事件:

$(document).ready(function(){

    // use your parameters but as an object
    var parameters = {
        val : 'someString',
        num : 46
    };

    // bind the callback to your object
    $("video").on('play', function(e){
        logModal(e, this.val);
    }.bind(parameters)); 

});

function logModal(e, val){ 
    console.log(e + '\n' + val); 
}