这是我的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)的内容和div的值(或ID),但我收到此错误:
未捕获的TypeError:无法读取属性'createDocumentFragment' 未定义
感谢您的帮助。
答案 0 :(得分:2)
基本上,这是一堆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秒。