我正在使用Magento 1.7.2,jQuery 1.9.1和Prototype.js 1.7,以及Zurb Foundation 4 JavaScript插件,即joyride插件。
在使用foundation.js和foundation.joyride.js文件安装了joyride插件之后,我发现prototypejs创建了一个属性Function.prototype.bind = function(){...},并且这是从Foundation.js调用的在一个名为init_lib或lib_init(不记得)的函数中,该函数调用bind方法,可能是bind的ecmascript5版本。
在调试代码时,我看到它从基础的init_lib进入了prototypejs绑定。
我如何解决此冲突而不必重命名所有prototypejs使用/绑定的调用为其他名称?
dom准备就绪后将调用$ .foundation()方法,这样就可以在prototypejs对象初始化之后。
感谢您的任何帮助。
PrototypeJS 1.7.1处理Function.bind
为polyfill,而不是假定它不存在。
在最新版本中,它将bind()
在添加(或替换)函数之前检查该方法是否在Function原型上可用
如果您无法升级,请找到此块
return {
argumentNames: argumentNames,
bind: bind,
bindAsEventListener: bindAsEventListener,
curry: curry,
delay: delay,
defer: defer,
wrap: wrap,
methodize: methodize
}
并替换这样的绑定定义
bind: Function.prototype.bind ? Function.prototype.bind : bind,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句