这是我的jQuery字计数器代码的一部分。我的问题是:我如何执行计算单词的部分并在页面加载时显示结果 - 以及键盘,单击,模糊等事件?我可以复制粘贴,但这看起来很草率。或者我可以将重复的位拉到另一个函数中,但是然后我的$(this)变量将不再起作用。怎么办?
$(".count").each(function() {
// Set up max words
maxWords = 200;
// Set up div to display word count after my textarea
$(this).after('<div class="word-count"><strong>0</strong> Words ('+maxWords+' Maximum)</div>');
// Bind function to count the words
$(this).bind('keyup click blur focus change paste', function() {
// Count the words
var numWords = jQuery.trim($(this).val()).replace(/\s+/g," ").split(' ').length;
// Display the result
$(this).next('.word-count').children('strong').text(numWords);
});
});
答案 0 :(得分:2)
在这一部分,只需在绑定后触发一次,如下所示:
$(this).bind('keyup click blur focus change paste', function() {
var numWords = jQuery.trim($(this).val()).replace(/\s+/g," ").split(' ').length;
$(this).next('.word-count').children('strong').text(numWords);
}).keyup();
这会触发keyup
事件一次,即刚绑定的事件,所以当这段代码运行时,它会触发你刚刚绑定的处理程序。