我有一个启动/停止计时器的按钮。当我单击它时,我会删除当前的事件处理程序,并附加另一个。也就是说,单击“停止”,然后附加“启动”功能,以便下次单击。
但是在IE(7)中,不确定大约8。新附加的事件也会在原始功能完成后触发:
IE7中的生命线:
按钮按下-->“停止”功能开始-->“停止”功能被删除-->“开始”功能被附加-->“停止”功能结束-->“开始”功能被调用。
我知道这与附加事件位有关,因为如果我移除它,启动事件就不会触发。
这似乎有点奇怪,因为我在“start”函数中有相同的情况,即“start”被删除,“stop”被调用。但谢天谢地,这似乎不会导致无限循环。
if(btn.attachEvent){
btn.detachEvent("onclick", stop);
btn.attachEvent("onclick", start);
}else if(btn.addEventListener){
btn.removeEventListener("click", stop, true);
btn.addEventListener("click", start , true);
}
在FF和Chrome中都可以正常工作。我已经改变了连接/分离的顺序,只是想看看它是否有影响,但是没有。
补遗
抱歉,没有涉及jquery、protype等的答案。我不想为这个项目集成它。