Uncaught TypeError: Невозможно прочитать свойство 'createDocumentFragment' из неопределенного (используя wysiwyg)

Вот мой JQuery:

$(".wysiwygtext").on("keyup keypress paste mouseup", function (e, t) {
    clearTimeout(timeout);
    timeout = setTimeout(function (e, t) {
        var element = $(this).html(); //throws 'Uncaught TypeError: Cannot read property 'createDocumentFragment' of undefined'
        var value = $(this).val(); //throws 'Uncaught TypeError: Cannot read property 'toLowerCase' of undefined' error

        console.log(element);
        console.log(value);
    }, 2000);
});

.wysiwyg это класс, применяемый к определенным элементам div, например, так (html генерируется с сервера):

<div class='wysiwygtext' data-guid='" + statementGuid + "' value='" + statementGuid + "'>" + lastbody + "</div>

Мне просто нужно извлечь содержимое div (html) и значение (или ID) div при любом изменении текста, но я получаю эту ошибку:

Uncaught TypeError: Невозможно прочитать свойство 'createDocumentFragment' из неопределенного

Спасибо за любую помощь.

1 ответ

Решение

По сути, это была куча undefined Рекомендации. Вот как я решил это:

var timeout = null;
$(".wysiwygtext").on("keyup keypress paste mouseup", function (e, t) {
  clearTimeout(timeout);
  var element = $(this).html();
  var value = $(this).val();
  timeout = setTimeout(function (e, t) {
    console.log(element);
    console.log(value);
  }, 2000);
});

Я определил timeout вне функции, как clearTimeout(timeout); бросал timeout is undefined ошибка. Далее я определил element а также value вне тайм-аута, как $(this).html() а также $(this).val() не ссылались на правильную вещь. Наконец, я продолжал console.log(element) а также colsole.log(value) внутри тайм-аута, поэтому они будут регистрироваться через 2 секунды после одного из вышеуказанных событий.

Другие вопросы по тегам