2012-04-03 11 views
12

Lo he resuelto usando data() en lugar de attr(), pero aún me gustaría saber si esto es solo yo, y qué lo está causando :TinyMCE y jQuery - attr() está devolviendo un objeto

Estoy usando jQuery 1.7.1 y TinyMCE 3.5b3 (paquete jQuery). No hay otras bibliotecas JS.

Este código emite "cadena" y la etiqueta de anclaje href, como se esperaba, cuando se hace clic en el enlace.

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

cuando activo TinyMCE en algunas áreas de texto en la página, se da salida a "objeto" y, por supuesto, attr() deja de devolver un valor esperado. Estoy activando TinyMCE a través de:

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

¿Alguien más ha experimentado este comportamiento con TinyMCE? ¿Hay algún error conocido o solución alternativa? ¿Por qué TinyMCE aparentemente afecta elementos HTML no relacionados en la página?

+0

Recomiendo encarecidamente a las personas que no utilicen la construcción tinymce-jquery, ya que es bastante fácil a la hora de manipular las teclas. además de que podría haber errores adicionales ... – Thariama

Respuesta

9

Estoy teniendo el mismo problema. Está causado por el paquete tinymce-jquery que reemplaza los métodos attr y css del objeto jquery. Parece (tristemente) que la solución es no usar la versión jquery de tinymce.

Todavía no he resuelto por qué esto no fue un problema con jquery 1.6 y es un problema con 1.7.

Editar:

que estaba usando el plugin jQuery así:

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

y ahora he hecho lo siguiente para replicar el comportamiento que requiere cuando se utiliza el plugin jQuery:

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

Espero que esto ayude

+1

Actualiza TinyMCE a la última versión y el problema desaparece. –

1

jquery 1.7.2 y tinymce 3.5b3 parece funcionar Okay.

0

Cuando tuve el mismo problema actualicé el editor TinyMCE (paquete jQuery) a la versión 3.5.11 y el comportamiento del método attr() se volvió normal. El problema principal era saber que se trata de un conflicto entre el método TinyMCE y jQuery attr(). No entendí esto de una vez.

El consejo es simplemente actualizar el editor.

Cuestiones relacionadas