我继承了实现MooTools 1.4.5的代码库。
该代码还利用第三方库来处理响应设备上的拖动。该库中包含以下代码:
var dndEvent = new Event(type, {
bubbles: true,
cancelable: cancelable
});
该事件在匿名MooTools函数中产生以下异常:
Uncaught TypeError: Cannot read property 'indexOf' of undefined
MooTools代码已最小化(且未映射),因此,我尚未针对未最小化的代码对其进行测试,以了解该匿名函数的作用,但我怀疑它与MooTools Element.Event有关。
如果是这种情况,我将如何强制范围使用JavaScript的Event接口而不是MooTools?
最佳答案
一个快速的技巧(我认为您正在尝试避免在此阶段进行深度重构)是在Mootools覆盖之前保存该Event对象:
<script>window.savedEvent = window.Event</script>
<script src="mootools.js"></script>
然后将您的第3方库修改为使用“ savedEvent”(现在显示“ Event”),或将其全部放在范围内。
+(function() {
var Event = window.savedEvent
//existing code goes here
})()
但这可能需要您通过将那些标识符放在window对象上来显式导出库提供的所有内容
关于javascript - 使用JavaScript事件而不是MooTools Element.Event,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57923712/