Ho una pagina che mi piacerebbe associare gli eventi di trascinamento/rilascio a. Mi piacerebbe che l'intera pagina del browser fosse l'obiettivo di rilascio, quindi ho associato i miei eventi all'oggetto document
. I contenuti della mia applicazione vengono caricati nell'area di contenuto principale tramite AJAX, tuttavia, e mi piacerebbe che questi gestori di eventi fossero attivi solo quando la pagina di caricamento è attualmente visibile.Come si può associare un gestore di eventi solo se non esiste già?
Al momento, collego i gestori di eventi quando viene recuperata la pagina di caricamento; tuttavia, ogni volta che la pagina di caricamento diventa attiva, associa un nuovo gestore di eventi, il che fa sì che il gestore si attivi più volte quando l'utente accede alla pagina di caricamento, esce e quindi torna indietro. Stavo pensando che potrei risolvere questo se potessi fare legare il conduttore solo quando non è già legato. È possibile o sto trascurando un'alternativa migliore?
relativo codice, se aiuta:
$(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);
});
possibile duplicato del [jQuery verifica se l'evento esiste elemento] (http://stackoverflow.com/questions/1515069/jquery-check-if-event-exists-on- element) – dgw