我为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);
答案 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);
}