1

私はJavaScriptを初めて使用するので、この質問が素朴で明白な場合はご容赦ください。私はjQueryUIのドラッグアンドドロップを使用しています(およびこのサイトのjQuery衝突検出ライブラリ:http://eruciform.com/static//jquerycollision/jquery-collision-drag-collision-example.html)。どのdivが互いに衝突しているのかを検出するのに問題はありませんが(そして、($(this).collisions( "。collisionclass"))。each(function()...)を使用してそのdivに何かを実行します)、私はしていません。互いに衝突していないdivまたはターゲットコライダーのこのリストを見つけることができませんでした。少なくともエレガントな解決策ではありません(理由は、衝突していない残りのdivに対して他のアクションを実行したかったからです)。

ブルートフォースに頼らずに衝突していないdivを見つけるエレガントな方法を知っている人はいますか(たとえば、そのようなすべてのdivをコレクションに追加し、衝突イベントが発生するたびに、元のコレクションのどのdivが結果の衝突コレクションに含まれていないかを確認します) )?上記のリンクを介したソースコードの例は、衝突した元のdivの部分に動的なdivオーバーレイを追加および削除するだけのようですが、衝突していないdivを検出する方法を教えてくれません...

4

1 に答える 1

1

jquerynotメソッドを使用できます。

var not_collided = $(".item").not(".collisionclass")

技術的には、これは「collisionclass」クラスがある場合にすべてのアイテムをチェックしますが、膨大な数のアイテムに到達するまでは依然として効率的です。

于 2012-08-27T19:35:56.553 に答える