Zurb Foundation 4 基础方法调用包含与 Prototype.js 冲突的代码



我正在使用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(不记得了)的函数下调用绑定方法,可能是 ecmascript5 版本的 bind。

在调试代码时,我看到它从 init_lib in Foundation 步入 prototypejs 绑定。

如何解决此冲突,而不必将所有原型js使用/调用绑定重命名为其他名称?

$.foundation() 方法在 dom 准备就绪时调用,因此这是在 prototypejs 对象初始化之后。

感谢您的任何帮助。

PrototypeJS 1.7.1 将Function.bind作为 polyfill 处理,而不是假设它不存在。

在最新版本中,它将在添加(或替换)之前检查 bind() 方法在函数原型上是否可用

如果您无法升级,请找到此块

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,

相关内容

  • 没有找到相关文章

最新更新