2012-05-31 11 views
5

Ho creato il mio hook insertImageDialog per consentire il caricamento di file direttamente all'interno dell'editor.Editor di paginazione insertimagedialog hook

  $('div#insertImageDialog input[type=file]').ajaxfileupload({ 
       action: $file.attr('data-action'), 
       onStart: function() { 
        $loader.show(); 
       }, 
       onComplete: function(response) { 
        $loader.hide(); 
        if (response.success) { 
         callback(response.imagePath); // <---- oO 
         dialogClose(); 
        } else { 
         alert(response.message); 
         $file.val(''); 
        } 
       } 
      }); 

Questo funziona correttamente la prima volta che inserisco un'immagine.

Ogni volta dopo, non riesce con la seguente eccezione:

Uncaught TypeError: Cannot call method 'removeChild' of null Markdown.Editor.js:1683 commandProto.doLinkOrImage.linkEnteredCallback Markdown.Editor.js:1683 self.initMarkdownEditor.editor.hooks.set.$.ajaxfileupload.onComplete

Il caricamento funziona bene al di fuori l'editor quindi posso solo pensare che sia una specie di scoping problema con la richiamata.

Mi sono tirato su i capelli per la maggior parte della giornata.

risposta

2

il problema è stato due volte

  1. Non avevo capito che il gancio viene chiamato ogni volta che l'utente fa clic sul pulsante immagine. Ciò significava che stavo effettivamente configurando più gestori di "modifica" per il caricamento dei file.
  2. Il plug-in di caricamento che stavo usando prevedeva che il gestore venisse registrato una sola volta (anche se lo cancellassimo).

Ho documentato la soluzione completa sul mio blog.

+0

Ho letto il tuo post, ma ho ancora problemi. Ho capito che l'hook viene chiamato ogni volta, ma perché questo imposta più gestori di 'change'? –