jQuery冲突a.fn.cssOriginal=a.fn.css和a[c].css(“框大小调整”)

jQuery冲突a.fn.cssOriginal=a.fn.css和a[c].css(“框大小调整”),jquery,Jquery,我有两个相互冲突的jQuery文件。我得到了一个错误: Uncaught TypeError: Object 0px has no method 'css' 经过大量的调整和修补,我找到了解决这个问题的方法。然而,我认为这不是一个合适的解决方案,我希望得到关于另一个合适解决方案的反馈 这些文件是来自1)模板和2)幻灯片的jQuery插件文件;调整屏幕大小时,调整容器和其他元素的大小 问题的根源在于slideshow jquery插件声明: a、 fn.cssOriginal=a.fn.css

我有两个相互冲突的jQuery文件。我得到了一个错误:

Uncaught TypeError: Object 0px has no method 'css' 
经过大量的调整和修补,我找到了解决这个问题的方法。然而,我认为这不是一个合适的解决方案,我希望得到关于另一个合适解决方案的反馈

这些文件是来自1)模板和2)幻灯片的jQuery插件文件;调整屏幕大小时,调整容器和其他元素的大小

问题的根源在于slideshow jquery插件声明:

a、 fn.cssOriginal=a.fn.css

无论何时调用[c].css(“框大小”)或类似文件,我都可以将错误读取到模板jquery文件的行中

我通过在模板的jquery函数文件中替换.cssOriginal的.css解决了这个问题。但我感到不安。首先,幻灯片只在某些页面中使用

如何防止tempalte的.css调用受到幻灯片放映插件文件的影响

幻灯片中的所有jQuery文件都包含一个jQuery.noConflict();最后

根据模板,这段代码是冲突的根源:

e.matchHeight = function (a, c, f) {
    var j = e(window),
        h = a && b[a];

    if (!h) {
        var h = b[a] = {
            id: a,
            elements: c,
            deepest: f,
            match: function () {
                var a = this.revert(),
                    b = 0;

                e(this.elements).each(function () {
                    b = Math.max(b, e(this).outerHeight())
                }).each(function (c) {
                    var d = "outerHeight";
                    "border-box" == a[c].css("box-sizing") && (d = "height");

                    var g = e(this),
                        c = a[c],
                        d = c.height() + (b - g[d]());

                    c.css("min-height", d + "px")
                })
            },
            revert: function () {
                var a = [],
                    b = this.deepest;

                e(this.elements).each(function () {
                    var c = b ? e(this).find(b + ":first") : e(this);
                    a.push(c.css("min-height", ""))
                });

                return a

            },
            remove: function () {
                j.unbind("resize orientationchange", k);
                this.revert();
                delete b[this.id]
            }
        }, k = function () {
            h.match()
        };

        j.bind("resize orientationchange", k)
    }

    return h
};
从幻灯片中可以看出,这部分代码是问题的根源:

a.fn.cssOriginal=a.fn.css;

    a.fn.css=function(c,d){

        var e=this,f={};
        if(typeof c=="string")if(d)f[a.camelCase(c)]=d;
        else return e.cssOriginal(c);
        else f=c;
        f=a.cssPropertySupporter(f);
        var g=a("body").data("cssPerspective");
        if(f.transform)a.each(b,function(a,b){var c=b+(b?"T":"t")+"ransform";
        var d=f.transform;
        f[c]=(g&&!/perspective/gi.test(d)?"perspective("+g+") ":"")+d});
        e.cssOriginal(f); 
        return e

    }

谢谢你

我想你是先在页面中添加幻灯片jquery插件,然后在页面中添加模板jquery插件。如果是这样,您能在两个插件之间包含一个线性java脚本吗?一个线性脚本可能包含以下内容:

a.fn.css=a.fn.cssOriginal;

我还没有试过,但只要试一下就行了。

这些脚本是要一起工作的吗

据我所知,
var e
在两者中都设置了,所以这可能会导致它们之间出现问题


我建议您使用不同的幻灯片放映插件。

您能发布一个有效的演示吗?嗯。。。我想是坏了,所以我们可以修复它。@Charlie我发布了链接,但由于数字,我无法添加http://for direct链接,请尝试将d+“px”括在一个引号中,即$.fn.css=a.fn.cssOriginal;这个$.fn.css=$.fn.cssororiginal;工作理想情况下,我希望将其保留在幻灯片代码中。所以我试着把它放在幻灯片文件的末尾…很好。你们也可以把它放在幻灯片放映插件的末尾,或者你们也可以在幻灯片放映插件之后加入另一个脚本。看看什么最适合你。