私が構築した小さなキャンバス アプリを、私が何も制御できない SharePoint サイトの巨大な混乱に組み込む必要があります。アプリは "WebPart" ラッパーに入りますdiv
。私のJSで物事をきれいに整頓するために、ラッパーオブジェクトを常にコンテキストとして使用するjQueryのクローンバージョンを作成できると考えていました。
var ctxed$ = ctxjQuery('#wrapper-el'); //this is what I don't get
(function($){
$('p').addClass('awesome'); //should only affect elements inside #wrapper-el
})(ctxed$)
とにかく、私が試したことはうまくいきませんでした。whichを使用してみ$.proxy
ましたが、期待どおりに機能しませんでした (ここではコンテキストが異なるため...)。
これは私が現時点で立ち往生しているポイントです:
function getContextifiedjQuery(ctx) {
var fn = function () {
return $.call(arguments[0], ctx);
}
$.each($, function (k, v) {
fn[k] = v;
});
return fn;
}
var wrapper$ = getContextifiedjQuery('#wrapper');
wrapper$('p').css('color', 'red');
wrapper$.each([1, 2, 3], function () {
alert(this)
});
これは単純なテストケースとして機能しますが、プロジェクトで使用しようとすると、循環参照が発生し、うまくいきません。ここで私が見逃しているのは何ですか?