У меня есть страница, к которой я хочу привязать события перетаскивания. Я хотел бы, чтобы вся страница в браузере была целью перетаскивания, поэтому я привязал свои события к объекту 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);
});