jQuery冲突a.fn.cssOriginal=a.fn.css和a[c].css(“框大小调整”)
我有两个相互冲突的jQuery文件。我得到了一个错误: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
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;工作理想情况下,我希望将其保留在幻灯片代码中。所以我试着把它放在幻灯片文件的末尾…很好。你们也可以把它放在幻灯片放映插件的末尾,或者你们也可以在幻灯片放映插件之后加入另一个脚本。看看什么最适合你。