Wie können Sie das binden eines Ereignishandlers nur, wenn es nicht bereits vorhanden ist?

Ich habe eine Seite, die ich möchte zu binden drag/drop-Ereignisse zu. Ich möchte die ganze Seite im browser auf das drop-Ziel, also habe ich gebunden meine Veranstaltungen an der document Objekt. Meine Anwendung Inhalt geladen ist, in der Haupt-content-Bereich per AJAX, obwohl, und ich würde nur, wie diese event-Handler aktiv sein, wenn die upload-Seite ist derzeit sichtbar.

Jetzt bin ich verbindlich die event-Handler, wenn der upload-Seite abgerufen werden; jedes mal jedoch, wenn der upload-Seite aktiv ist, bindet es einen neuen event-handler, die verursacht die Prozedur mehrfach ausgelöst, wenn der Benutzer auf die upload-Seite, die Blätter, und kommt dann wieder. Ich dachte, ich könnte dies beheben, wenn ich könnte die handler-bind nur, wenn es nicht bereits gebunden. Ist das möglich, oder bin ich mit Blick auf eine bessere alternative?

Relevanten code, falls es hilft:

$(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);
});
InformationsquelleAutor FtDRbwLXw6 | 2012-07-23
Schreibe einen Kommentar