2012-04-03 9 views
12

Ho risolto questo problema utilizzando data() anziché attr(), ma mi piacerebbe comunque sapere se questo è solo per me, e cosa lo causa :TinyMCE e jQuery - attr() restituisce un oggetto

Sto usando jQuery 1.7.1 e TinyMCE 3.5b3 (pacchetto jQuery). Nessun'altra libreria JS.

Questo codice emette "stringa" e href del tag di ancoraggio, come previsto, quando si fa clic sul collegamento.

$('a.page_item_delete').on('click', function(event){ 
    event.preventDefault(); 
    var $this = $(this); 
    console.log(typeof $this.attr('href')); 
    console.log($this.attr('href')); 
}); 

quando attivo TinyMCE su alcune aree di testo sulla pagina, essa stampa "Oggetto" e, naturalmente, attr() si ferma restituendo un valore atteso. Sto attivando TinyMCE tramite:

$ ('textarea.tinymce'). Tinymce (opzioni);

Qualcun altro ha riscontrato questo comportamento con TinyMCE? C'è un bug noto o soluzione? Perché TinyMCE sembra influenzare apparentemente elementi HTML non collegati nella pagina?

+0

consiglio vivamente alle persone di non usare la build di tinymce-jquery, perché è piuttosto scarsa quando si tratta di gestire i tasti. inoltre potrebbero esserci ulteriori bug ... – Thariama

risposta

9

Ho lo stesso problema. È causato dal pacchetto tinymce-jquery che sovrascrive i metodi attr e css dell'oggetto jquery. Sembra (purtroppo) che la soluzione sia quella di non usare la versione jquery di tinymce.

Non ho ancora lavorato fuori perché questo non era un problema con jquery 1.6 ed è un problema con 1.7.

Edit:

stavo usando il plugin jQuery in questo modo:

$('.wysiwyg', '#EditForm').tinymce({ 
    -- SETTING HERE 
}); 

e ora ho fatto quanto segue per replicare il comportamento che ho richiesto quando si utilizza il plugin jQuery:

$('.wysiwyg', '#EditForm').each(function(){ 
    id = $(this).attr('id'); 
    var ed = new tinyMCE.Editor(id, { 
    -- SETTINS HERE --   
    }); 
    ed.render(); 
}); 

Spero che questo aiuti

+1

Aggiornare TinyMCE alla versione più recente e il problema scompare. –

1

jquery 1.7.2 e tinymce 3.5b3 sembra funzionare ok.

0

Quando ho avuto lo stesso problema, ho aggiornato l'editor TinyMCE (pacchetto jQuery) alla versione 3.5.11 e il comportamento del metodo attr() è diventato normale. Il problema principale era sapere che si tratta di un conflitto tra TinyMCE e il metodo jQuery attr(). Non ho capito questo in una volta.

Il consiglio è solo aggiornare l'editor.