想象这种情况(这只是一个场景):
>我有一个全球计数器,每增加一次鼠标点击.
>当我达到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); }