本篇内容主要讲解“Javascript事件机制兼容性解决方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript事件机制兼容性解决方法是什么”吧!本文的解决方案可以用于Javascriptnative对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件:或者After函数为native对象添加事件的过程主要在after函数中完成,这个函数主要做了以下几件事:如果obj中已有响应函数,将其替换成dispatcher函数使用链式结构,保证多次绑定事件函数的顺序执行返回一个handle对象,调用remove方法可以去除本次事件绑定下图为after函数调用前后onlog函数的引用(调用前)(调用后)详细解释请看注释,希望读者能够跟着运行一遍解决兼容性IE浏览器从IE9开始已经支持DOM2事件处理程序,但是对于老版本的ie浏览器,任然使用attachEvent方式来为dom元素添加事件。值得庆幸的是微软已宣布2016年将不再对ie8进行维护,对于广大前端开发者无疑是一个福音。然而在曙光来临之前,仍然需要对那些不支持DOM2级事件处理程序的浏览器进行兼容性处理,通常需要处理以下几点:多次绑定一个事件,事件处理函数的调用顺序问题事件处理函数中的this关键字指向问题标准化event事件对象,支持常用的事件属性由于使用attachEvent方法添加事件处理函数无法保证事件处理函数的调用顺序,所以我们弃用attachEvent,转而用上文中的after生成的正序链式结构来解决这个问题。对于事件处理函数中的this关键字指向,通过闭包即可解决(出处),如:本文也是通过这种方式解决此问题对于事件对象的标准化,我们需要将ie提供给我们的现有属性转化为标准的事件属性。在_preventDefault、_stopPropagation、_stopImmediatePropagation三个函数中我们,如果被调用则listener执行完后使用一个变量保存event对象(见fixListener),以便后序事件处理程序根据event对象属性进行下一步处理。stopImmediatePropagation函数,对于这个函数的模拟,我们同样通过闭包来解决。注意这里不能直接写成这种形式,上文中fixListener也是同样道理。需要注意一点,我们将event标准化目的还有一点,可以在emit方法中设置参数来控制事件过程,比如:根据我的测试使用fireEvent方式触发事件,无法设置{bubbles:false}来阻止冒泡,所以这里我们用Javascript来模拟冒泡过程。同时在这个过程中也要保证event对象的***性。附上完整代码:到此,相信大家对“Javascript事件机制兼容性解决方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!免费云主机、域名
这篇文章主要介绍React中的Ref是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在 React 项目中,有很多场景需要用到 Ref。例如使用 ref 属性获取 DOM 节点,获取 ClassComponent 对象实例;用 us…