2011-02-01 11 views
1

私のドラッグ可能なアイテムがドロップされたが、ドロップ可能なアイテムの中にはイベントを処理しません。これまでのところ、私はこれだけ遠くに得ることができます:jQuery draggable/droppable missイベント

$('#myDraggable').draggable({ 
    stop: function (event, ui) { 
     if (event.srcElement.id != 'myDroppable'){ 
     // Missed 
     } 
    } 
}); 

をしかし、問題は何かがそれに追加されたとき、私は#myDroppable要素をchaningだということです。だから私はそれに何かを落とす次の時間event.srcElement.idは、myDroppableではないかもしれないが、新しい子供の任意のIDです。上にオーバーレイを追加できますが、スクロールバーがあると複雑になります。このイベントを処理する別の方法はありますか?

答えて

0
if ($(event.srcElement).parents().andSelf().has("#myDroppable").length === 0) 

、あなたの要素を取り、それは全体の親チェーンがセットマッチング「#myDroppable」にそれを減らすその後、現在の要素を追加しますつかみます。長さが0の場合は、あなたの落書きに落とさないようにします。

私はそのプラグインで一定にないんだが、通常this === event.srcElement

.parents.andSelf.has

+0

それは奇妙だが、event.srcElement'はjQueryオブジェクトに変換することができません '、それは' $(後にゼロになります私の場合、その型は 'HTMLElementDiv'です。また、私はそれを行うより効率的な方法を探していた、コンテナ内のすべての要素をチェックすることは良い解決策のように見えません。 –