2017-09-15 12 views
-4

関数$.fn.closest()と同等のセレクタが必要です。jQuery:closest()CSSセレクタ

$('.wrapper:eq(0)>h1>strong:closest(.wrapper)') 

実装は、ページの最初で、その結果strong要素が含まれ、h1が含まれている.wrapper要素を、返す必要があります。

実際には、上記の例は単なる例です。現実の世界では、動的なcontainmentプロパティを設定するには$.fn.draggableが必要です。


より明確なものを持参するUPDATE

:(EX用)があるページのツリーラッパーはdiv.wrapper他ずつ続きます。各ラッパーはソート可能な領域として兄弟ラッパーに接続されています。ソート可能なアイテムはdiv.sub-wrapperで、いずれかのラッパーに配置されるため、他のラッパーに移動することができます。各ソート可能な項目には子要素divがあり、これはドラッグ可能な要素です。私が実際に必要とするのは、後者の現在のところにある後者(ドラッグ可能な)要素の親ラッパに後者のdraggable.options.containmentを設定することです。同じ封じ込め要素まま - - 主な問題は、私は

{containment: $('div.draggable').closest('div.wrapper')} 

などの封じ込めを登録する場合、私は他のdiv.wrapperからdiv.sub-wrapperを移動するならば、それが正しく動作しませんということです古いものdiv.wrapperドラッグ可能以前に位置していた。あなたが話した

$("selector-for-your-draggables").each(function() { 
    var $this = $(this); 
    $this.draggable({ 
     // ...other options here... 
     containment: $this.closest(".wrapper") // or .sub-wrapper, I couldn't 
               // tell from the description 
    }); 
}); 

+3

CSSセレクタには祖先を選択する特権がありません。 –

+0

これはかなり不明です。 ** CSS **セレクタが本当に必要か、要素を見つけるjQueryコールが必要ですか(つまり、jQuery-ismsを使用したり、結果セットを絞り込むために呼び出しを行うことができます)?あなたは、 "実装すべきこと..."から始まる段落で何を言ったのか、最後の段落で必要なものは同じものではないように思われますか?別に:問題を解決するために何をしましたか?あなたの研究はどのようになったのですか? [jQuery API](http://api.jquery.com/)で何が見つからなかったのですか? –

+1

[mcve]は本当に**役立つでしょう。コード/マークアップの記述は、実際に問題を示しているコード/マークアップのMCVEを表示するよりもはるかに明確ではありません。 –

答えて

1

私はあなたの更新に基づいて:has()

$('.wrapper:has(>h1>strong)') 
+0

残念ながら、それは私が探しているものではありません。ドキュメントへのリンクのThx、私はどのように機能するのか知っています。 – impulsgraw

+0

あなたが望むことをしないということを意味しているのかどうかわかりません....たぶんhtmlと一致させる必要があります。だからあなたが2つのラッパーを持っている場合は、内側のものに持っている必要があります....またはそれは2つの呼び出しで行う必要があるという事実と一緒に生きて、すべてが1つの線である必要はありません。 – epascarello

+0

私は物事をより明確にするために質問を更新しました。その解決策は、 '.wrapper'要素が動的に変更されるので私を助けません。それで、私は何を持っていますか?ドラッグ可能なDOM要素です。私は変数にポインタを持っています。そして 'jQuery.fn.draggable'ライブラリに' containment'プロパティ(HTMLElement型である)を現在の最も近い '.wrapper'自身に設定する必要があります。私が想定しているもっとも簡単な解決策は、セレクタ ':closest(.wrapper)'を使用していますが、 ':closest()'セレクタが存在しないため不可能なので、少し実装する必要があります。 – impulsgraw

0

を使用したい考えています、私はあなたがdraggablesを初期化し、個別にではなくとして設定する必要が疑われます親については「現時点で」です。私はあなたがそれを意味するかどうかは分かりませんが、ドラッグ可能な要素に変更が含まれるようにするには、"options"コールが必要です(containment)。