TinyMCE и jQuery - attr() возвращает объект
Я решил это, используя data() вместо attr(), но мне все равно хотелось бы знать, является ли это только мне, и что вызывает его:
Я использую jQuery 1.7.1 и TinyMCE 3.5b3 (пакет jQuery). Нет других JS-библиотек.
Этот код выводит "string" и якорный тег href, как и ожидалось, при нажатии ссылки.
$('a.page_item_delete').on('click', function(event){
event.preventDefault();
var $this = $(this);
console.log(typeof $this.attr('href'));
console.log($this.attr('href'));
});
Когда я активирую TinyMCE в некоторых текстовых средах на странице, он выводит "Объект" и, конечно же, attr() перестает возвращать ожидаемое значение. Я активирую TinyMCE с помощью:
$( 'textarea.tinymce') TinyMCE (варианты);.
Кто-нибудь еще испытывал такое поведение с TinyMCE? Есть ли известная ошибка или обходной путь? Почему TinyMCE, по-видимому, влияет на не связанные элементы HTML на странице?
Ответы
Ответ 1
У меня такая же проблема. Это вызвано пакетом tinymce-jquery, переопределяющим методы attr и css объекта jquery. Кажется (к сожалению), что решение состоит в том, чтобы не использовать jQuery-версию tinymce.
Я еще не понял, почему это не проблема с jquery 1.6 и проблема с 1.7.
Edit:
Я использовал плагин jquery следующим образом:
$('.wysiwyg', '#EditForm').tinymce({
-- SETTING HERE
});
и теперь я выполнил следующее, чтобы воспроизвести поведение, которое я требовал при использовании плагина jquery:
$('.wysiwyg', '#EditForm').each(function(){
id = $(this).attr('id');
var ed = new tinyMCE.Editor(id, {
-- SETTINS HERE --
});
ed.render();
});
Надеюсь, что это поможет
Ответ 2
jquery 1.7.2 и tinymce 3.5b3, похоже, работают нормально.
Ответ 3
Когда у меня была та же проблема, я обновил редактор TinyMCE (пакет jQuery) до версии 3.5.11 и
поведение метода attr()
стало нормальным. Основная проблема заключалась в том, чтобы знать, что это конфликт между методом TinyMCE и jQuery attr()
. Я не сразу понял это.
Совет просто обновляет редактор.