ドラッグ&ドロップイベントをバインドしたいページがあります。ブラウザのページ全体をドロップターゲットにしたいので、イベントをdocument
オブジェクトにバインドしました。私のアプリケーションのコンテンツはAJAXを介してメインコンテンツエリアにロードされていますが、アップロードページが現在表示されている場合にのみこれらのイベントハンドラをアクティブにしたいと思います。イベントハンドラが既に存在しない場合にのみバインドできますか?
今、アップロードページが取得されるときにイベントハンドラをバインドします。ただし、アップロードページがアクティブになるたびに、新しいイベントハンドラがバインドされます。これにより、ユーザーがアップロードページに移動してから離れるとハンドラが複数回起動します。私はバインドされていないときにのみハンドラをバインドさせることができれば、これを解決できると思っていました。これが可能ですか、よりよい選択肢が見落とされていますか?
関連するコード、それは場合に役立ちます:
$(document).bind('dragenter', function(e) {
e.stopPropagation();
e.preventDefault();
}).bind('dragover', function(e) {
e.stopPropagation();
e.preventDefault();
}).bind('drop', function(e) {
e.stopPropagation();
e.preventDefault();
self._handleFileSelections(e.originalEvent.dataTransfer.files);
});
[jQueryのチェックイベントは、要素上に存在する場合]の可能複製(http://stackoverflow.com/questions/1515069/jquery-check-if-event-exists-on-要素) – dgw