【发布时间】:2013-11-14 06:37:16
【问题描述】:
我有一个在 DIV 上运行的单词计数器,在输入几个单词后,页面崩溃了。浏览器继续工作(标准滚动),Chrome 的控制台中没有显示任何错误。不知道哪里出错了……
这一切都是从我在“keyup”中传递“wordCount(q);”开始的。我只是将它传递到那里,因为它会拆分出“NaN”而不是倒计时的数字。
JS:
wordCount();
$('#group_3_1').click(function(){
var spliced = 200;
wordCount(spliced);
}) ;
$('#group_3_2').click(function(){
var spliced = 600;
wordCount(spliced);
}) ;
function wordCount(q) {
var content_text = $('.message1').text(),
char_count = content_text.length;
if (char_count != 0)
var word_count = q - content_text.replace(/[^\w ]/g, "").split(/\s+/).length;
$('.word_count').html(word_count + " words remaining...");
$('.message1').keyup(function() {
wordCount(q);
});
try
{
if (new Number( word_count ) < 0) {
$(".word_count").attr("id","bad");
}
else {
$(".word_count").attr("id","good");
}
} catch (error)
{
//
}
};
HTML:
<input type="checkbox" name="entry.3.group" value="1/6" class="size1" id="group_3_1">
<input type="checkbox" name="entry.3.group" value="1/4" class="size1" id="group_3_2">
<div id="entry.8.single" class="message1" style="height: 400px; overflow-y:scroll; overflow-x:hidden;" contenteditable="true"> </div>
<span class="word_count" id="good"></span>
提前致谢!
【问题讨论】:
-
你的 wordCount() 函数在哪里?
-
只是一个疑问..你为什么要在 wordCount() 函数中注册 keyup?
-
当
keyup事件在内容可编辑元素中触发时,您正在运行一个无限循环 - 这就是浏览器崩溃的原因。 -
如果用户没有点击任何复选框怎么办? word_count 的默认值是多少?
标签: javascript jquery html performance