私の SharePoint ポータルでは、リストがページの境界線 (カスタム マスター ページ) よりも幅が広く、右端に表示すると変に見えるという問題を修正しようとしています。だから私は幅をリセットするjQuery関数を書いています。
私の関数は問題なく動作するので、Sharepoint ダイアログでも動作しますが、ダイアログでは動作させたくありません!
これが機能する要素を選択する私の方法です。
var elements = $(".s4-wpcell-plain > div > *, #pagebody.s4-ca > div > *");
ただし、ページがダイアログで実行されている場合は、一致を除外したいと考えています。さて、.ms-dlgContent
スタイルはありますが、セレクターマッチで使用している要素のいずれかよりも上にあります(親の親の親など)。
そのクラスに一致する先行要素がない場合、どのように要素を一致させることができますか?
[アップデート]
忠実な jQuery の専門家の皆さん、このような迅速な対応に感謝します。しかし、私はあなたのすべてのテクニックを試しましたが、うまくいかないので、もう少し説明させてください (以前は考えていませんでした)。
#pagebody
ダイアログの divへの css パスは次のとおりです。最初にダイアログを指定するクラスが表示されます。
html.ms-dialog body form#aspnetForm div#s4-workspace.s4-nosetwidth div#s4-bodyContainer div#ctl00_MSO_ContentDiv div#pagebody.s4-ca
#pagebody
これは、通常のページの要素の css パスです。
html body form#aspnetForm div#s4-workspace.s4-nosetwidth div#s4-bodyContainer div#ctl00_MSO_ContentDiv div#pagebody.s4-ca
#pagebody
そのため、ダイアログではなく、メイン ページだけに影響を与える必要があります。SharePoint で生成された GUID に基づいて何かを選択することは避けたいことに注意してください。
[編集]
ええと、申し訳ありませんが、これらのパスを調べた後、ms-dialog
代わりに otを使用する必要があることに気付きms-dlgContent
ました。今すぐ答えをマークします。