1

2 つの DOM 要素間の距離を知る方法を見つけたいと思います。ピクセル単位ではなく、トラバーサル ステップと同様です。

これを実際に使用するには、次のようにします。サイト内の他の同様の要素を見つけて、最も近い関連要素の動作を模倣する必要があるコア要素が 1 つあります。

たとえば、タブで幅が設定されていないギャラリー。非表示のタブには幅がない可能性があるため、タブが表示されたときに再初期化しない限り、タブのギャラリーは表示されません。非表示のギャラリーがコア要素となり、適切に機能しているギャラリーの別のインスタンスを探し、その幅をコピーして機能させます。作業ギャラリーは、最初のタブ、コンテンツ、またはサイドバーまたはフッターの小さなギャラリーにある可能性があります。私が望むのは、最も近い関連する他のインスタンスがフッターのものではなく、他のタブのものであることを「知る」ことです。これは WP プラグインなので、何もハードコードできません。また、シナリオはタブに限定されません。

.closest()この目的では機能しません。

4

1 に答える 1

2

この目的のために、最も効率的な解決策は次のとおりであることがわかりました。

var commonParentsDepth = a.parents().has(b).first().parents().length;

2 つの要素の共通の祖先の深さを示す数値が得られます。このテストは複数の要素に対してループで実行し、一度に 2 つを比較しますが、そのうちの 1 つが変化しません。2 つの要素が他の要素よりも密接に関連しているかどうかは、結果によってわかります。数値が大きいほど、2 つの要素がツリーの下の方にあり、より近くにあることを意味します。

注: これは、2 つの要素を別の 2 つと比較するためのものではありません。

この 2 つのやや関連する質問を組み合わせました。

于 2013-04-26T13:30:48.110 に答える