jquery - $.extend 不是函数

标签 jquery magento prototypejs conflict

我正在尝试集成 svg edit - editor ,它使用 jQuery,进入 Magento。问题是 Magento 使用 Prototype,因此我使用 jQuery.noConflict(); 方法。一切都很好,直到我通过函数调用编辑器然后 Firebug 抛出以下错误:

$.extend 不是函数

if(config) {
   $.extend(curConfig, config);
} 

$.isArray 不是函数

} else if($.isArray(key)) {

错误发生在59行和 121svgcanvas.js 。我希望有更多使用jquery和prototype经验的人可以帮助我解决这个问题。

最佳答案

尝试将你的函数attr放入

(function( $ ){


})( jQuery );

所以它看起来像

(function( $ ){
jQuery.fn.attr = function(key, value) {
    var len = this.length;
    if(!len) return this;
    for(var i=0; i<len; i++) {
        var elem = this[i];
        // set/get SVG attribute
        if(elem.namespaceURI === svgns) {
            // Setting attribute
            if(value !== undefined) {
                elem.setAttribute(key, value);
            } else if($.isArray(key)) {
                // Getting attributes from array
                var j = key.length, obj = {};

                while(j--) {
                    var aname = key[j];
                    var attr = elem.getAttribute(aname);
                    // This returns a number when appropriate
                    if(attr || attr === "0") {
                        attr = isNaN(attr)?attr:attr-0;
                    }
                    obj[aname] = attr;
                }
                return obj;

            } else if(typeof key === "object") {
                // Setting attributes form object
                for(var v in key) {
                    elem.setAttribute(v, key[v]);
                }
            // Getting attribute
            } else {
                var attr = elem.getAttribute(key);
                if(attr || attr === "0") {
                    attr = isNaN(attr)?attr:attr-0;
                }

                return attr;
            }
        } else {
            return proxied.apply(this, arguments);
        }
    }
    return this;
};


})( jQuery );

关于jquery - $.extend 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158548/

相关文章:

php - Magento FedEx express 错误 :Commodity country of manufacture is required

javascript - 有没有类似于 Jquery Live 的 Prototype Javascript 函数来跟踪动态 dom 元素?

javascript - 为什么这个 jquery 脚本在更新表时创建多个警报

javascript - 根据其他属性和链接值查找链接属性

javascript - 推迟小部件 js 的执行,直到页面完全加载

php - 将Magento 1.9.1迁移到Magento 2.1

Magento 在主 url 之后获取 url

JavaScript "this"在事件处理程序中引用了错误的对象

php - 原型(prototype) Javascript 框架 - 获取 PHP 响应

javascript - 在所有 JavaScript 页面中的其他函数之前运行一个全局函数