Mam stronę, do której chciałbym powiązać zdarzenia przeciągania/upuszczania. Chciałbym, aby cała strona w przeglądarce była celem upuszczania, więc ograniczyłem moje zdarzenia do obiektu document
. Zawartość mojej aplikacji jest jednak ładowana do głównego obszaru zawartości za pośrednictwem AJAX i chciałbym, aby te programy do obsługi zdarzeń były aktywne, gdy strona przesyłania jest obecnie widoczna.Jak powiązać obsługę zdarzeń tylko wtedy, gdy jeszcze nie istnieje?
W tej chwili wiążę procedury obsługi zdarzeń po pobraniu strony pobierania; jednak za każdym razem, gdy strona przesyłania staje się aktywna, wiąże nową funkcję obsługi zdarzeń, co powoduje wielokrotne uruchamianie programu obsługi, gdy użytkownik przechodzi do strony przesyłania, opuszcza, a następnie wraca. Pomyślałem, że mógłbym rozwiązać ten problem, gdybym mógł sprawić, żeby przewodnik był związany tylko wtedy, gdy nie jest jeszcze związany. Czy to możliwe, czy też przeoczyłem lepszą alternatywę?
odpowiedniego kodu, jeśli pomaga: ty
$(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);
});
możliwe duplikat [jQuery sprawdzić, czy zdarzenie istnieje na elemencie] (http://stackoverflow.com/questions/1515069/jquery-check-if-event-exists-on- element) – dgw