gpt4 book ai didi

javascript - AttachEvent 将事件插入队列的开头,而 addEventListener 将事件追加到队列

转载 作者:行者123 更新时间:2023-12-02 20:24:03 26 4
gpt4 key购买 nike

我使用这个简单的工作函数来添加事件:

function AppendEvent(html_element, event_name, event_function)
{
if(html_element)
{
if(html_element.attachEvent) //IE
html_element.attachEvent("on" + event_name, event_function);
else if(html_element.addEventListener) //FF
html_element.addEventListener(event_name, event_function, false);
};
}

在进行这个简单的测试时:

AppendEvent(window, 'load', function(){alert('load 1');});
AppendEvent(window, 'load', function(){alert('load 2');});

我注意到 FF3.6 addEventListener 将每个新事件附加到事件队列的末尾,因此在上面的示例中,您将收到两个警报,内容为“加载 1”“加载 2”。

另一方面,IE7 attachEvent 将每个新事件插入事件队列的开头,因此在上面的示例中,您将收到“加载 2”“加载 1”的警报。

有没有办法解决这个问题并使两者以相同的方式工作?

谢谢!

最佳答案

根据MSDN文档,attachEvent的执行顺序没有指定(使用的词是“随机”)。不过,附件顺序相反也就不足为奇了。

您可以完全避免这样做,并根据所涉及元素的“onevent”属性构建处理程序链。或者,如果可能并且合适的话,您可以只使用 jQuery 或类似的东西。

关于javascript - AttachEvent 将事件插入队列的开头,而 addEventListener 将事件追加到队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2629418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com