gpt4 book ai didi

JavaScript + fireEvent ('onchange' 的无效参数错误)

转载 作者:行者123 更新时间:2023-11-28 09:13:47 29 4
gpt4 key购买 nike

一些简单的事件驱动代码。无论出于何种原因,我似乎无法将“onchange”作为参数传递给 fireEvent()。在 IE 7/8 中引发无效参数错误。这个项目需要是原生的。帮助不大?

自定义事件创建:

    createCustomEvent : function(eventName) {
var evt;
if(document.createEvent) {
evt = document.createEvent('CustomEvent');
evt.initEvent(eventName, true, true);
}else if(document.createEventObject) {
evt = document.createEventObject();
evt.eventName = eventName;
}
return evt;
},
dispatchCustomEvent : function (el, evt) {
if(el.dispatchEvent) {
el.dispatchEvent(evt);
}else if(el.fireEvent) {
console.log('on'+evt.eventName); //onchange
el.fireEvent('on'+evt.eventName, evt);
}
}

用法:

dispatchCustomEvent(element, createCustomEvent('change'));

最佳答案

好的,所以根据大多数文档,change 事件将在任何元素上触发,我引用:“当元素失去焦点并且其值在获得焦点后发生变化时,会触发 change 事件。”

https://developer.mozilla.org/en-US/docs/DOM/Mozilla_Event_Reference/change

但是,在 <= ie8 中 onchange 不会在表单元素之外的任何元素上触发。在我看来,这是非常蹩脚的,并且使现代 MVC 自定义事件监听和调度成为一个问题。

长话短说,在我的例子中,我使用 blur 事件来捕获对 div 元素的更改。这对我有用,因为 div 元素更新之间的焦点被移除。这是一个幻灯片应用程序,其中两个 div 在堆栈中弹出和弹出,从左到右取决于当前位置。

关于JavaScript + fireEvent ('onchange' 的无效参数错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936537/

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