Редактор: событие размытия, вызывающее ошибки

Я использую редактор для текстового редактора в проекте laravel.

Всякий раз, когда редактор находится на странице и инициализируется, я получаю эту ошибку всякий раз, когда я нажимаю в любом месте.

Uncaught TypeError: $(...).closest(...).size is not a function(…)  
Uncaught TypeError: $current.closest(...).size is not a function(…) 

Это срабатывает всякий раз, когда я печатаю в редакторе или просто нажимаю в любом месте страницы. Редактор нормально инициализируется и работает нормально. Я не уверен, почему он жалуется на событие размытия.

Вот как я его инициализирую:

$('#myInput').redactor({
        'buttons': ['html', 'formatting', 'bold', 'italic', 'unorderedlist', 'orderedlist', 'link'],
        'placeholder': 'Comments...'
    });

Похоже, это одна из частей, которая не радует:

$(document).on('mousedown.redactor-blur.'+this.uuid,

Я использую Редактор 10.2.5.

Спасибо за любые предложения!


person Damon    schedule 05.11.2016    source источник


Ответы (2)


Я использую Redactor 10.2.2, но у меня возникла аналогичная ошибка после обновления версии jquery (2.x -> 3.x).

Я думаю, что есть некоторый конфликт с версией jquery 3 и следующими двумя строками:

line 1463:    if ($(e.target).closest('.redactor-editor, .redactor-toolbar, .redactor-dropdown').size() !== 0)
line 6913:    if ($current.closest(element).size() > 0)

следует изменить

line 1463:    if ($(e.target).closest('.redactor-editor, .redactor-toolbar, .redactor-dropdown').length !== 0)
line 6913:    if ($current.closest(element).length > 0)

для Реактора 10.2.5.

Я надеюсь, что это может помочь вам.

person Jongwon Han    schedule 06.11.2016
comment
Большое спасибо! Мне никогда не приходило в голову, что проблема может быть связана с версией jQuery. После просмотра кодовой базы редактора и ее очистки все в порядке. - person Damon; 07.11.2016
comment
Вау, как вы нашли это, ребята. - person Adobe; 03.11.2017

Я думаю, что это решение было бы лучше

$(function() {
    $.fn.size = function() {
        return this.length;
    }
});

Вам не нужно менять поставщика, поэтому вам не придется иметь дело с изменениями каждый раз, когда вы где-то устанавливаете свое приложение.

person Rutherther    schedule 04.11.2018
comment
это гораздо лучший подход, чем выбранный ответ - person Muhammad Omer Aslam; 13.01.2021