我有一个这样的事件监听器:
div.addEventListener('mouseover',function(){bubble_info.call(data);},false);
function bubble_info(e,info){
//get e.pageX etc
//do stuff with info
}
此问题出在bubble_info
变量e
包含data
的信息且info
未定义
如何确保我能正确获得e
和info
?
答案 0 :(得分:1)
事件对象有许多有用的properties and methods。
div.addEventListener('mouseover',function(event){
bubble_info(event, info);
// you can pass additional params that can be used in your handler
},false);
function bubble_info(event, info){
// you can access type of event from event object's properties
console.log(event.type);
console.log(info); // your additional parameter.
};
<强> addEventListener Documentation 强>
仅在您需要传递this
(当前)对象的引用时才使用调用。
它的语法是......
FunctionName.call(thisArg, arguments-list, ...);
<强> call Documentation 强>
答案 1 :(得分:0)
试试这个(除非你传递了一个特定的this
引用,否则你不需要通话 - 你的代码中缺少这个引用):
div.addEventListener(
'mouseover',
function(event) {
bubble_info( event, dataYouWant );
},
false
}
作为参考,.call()应如下所示:bubble_info.call( this, event, etc )