互いに競合していた2つのjQueryファイルがあります。エラーが発生していました:
Uncaught TypeError: Object 0px has no method 'css'
多くの調整と調整を行った後、私はこれを解決する方法を見つけました。ただし、これは適切な解決策ではないと思います。別の適切な解決策についてフィードバックをお寄せください。
ファイルは、1)テンプレートから、2)スライドショーからのjQueryプラグインファイルです。画面のサイズが変更されると、コンテナとその他の要素の両方のサイズが変更されます。
問題の原因は、slideshowjqueryプラグインが次のように宣言していることです。
a.fn.cssOriginal = a.fn.css;
また、a [c] .css( "box-sizing")などが呼び出されているときはいつでも、テンプレートの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
}
ありがとうございました