繁体   English   中英

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

[英]JavaScript + invalid argument error with fireEvent('onchange')

一些简单的事件驱动代码。 无论出于什么原因,我似乎都无法将“ onchange”作为参数传递给fireEvent()。 向我抛出一个invalide参数错误,即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/zh-CN/docs/DOM/Mozilla_Event_Reference/change

但是,在<= ie8中, onchange不会在表单元素之外的任何元素上触发。 这真是la脚的imo,使现代MVC自定义事件监听和调度问题。

长话短说,就我而言,我使用了模糊事件来捕获对div元素的更改。 这对我很有用,因为在div元素更新之间将焦点移开了。 这是一个幻灯片显示应用程序,其中两个div根据当前位置从左到右弹出或弹出堆栈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM