javascript – 启动和捕获自定义事件

前端之家收集整理的这篇文章主要介绍了javascript – 启动和捕获自定义事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
想象这种情况(这只是一个场景):

>我有一个全球计数器,每增加一次鼠标点击.
>当我达到50次点击时,我想启动一个名为“gotCount”的自定义事件
>我想注册我的窗口对象来捕获这个事件
window.addEventListener(‘reachedCount’,function(args){alert(args.count);},false)

所以,我的问题是,我不知道,我找不到任何可以传递参数到我的eventHandler的任何地方.另外,我尝试了Rikudo发布的方法,但它不能在IE lt 9中工作.

这可能吗?怎么样?

解决方法

使用Rikudo Sennin的答案,您可以将参数传递给事件处理程序,方法是将其放入事件本身,就像DOM处理程序一样!
function fireEvent(name,target,param1,param2) {
    //Ready: create a generic event
    var evt = document.createEvent("Events")
    //Aim: initialize it to be the event we want
    evt.initEvent(name,true,true); //true for can bubble,true for cancelable
    evt.param1 = param1;
    evt.param2 = param2;
    //FIRE!
    target.dispatchEvent(evt);
}

function foobar(ev) {
    alert("foobar" + ' ' + ev.param1 + ' ' + event.param2);
}

function testEvents(param1) {
    window.addEventListener("foobar",foobar,false); //false to get it in bubble not capture.
    fireEvent("foobar",document,'test',param1);
}

猜你在找的JavaScript相关文章