HTML
<input type="text" id="test" />
<span>0</span>
jQuery
var input = $('input#test');
input.bind('keyup', function() {
doThis();
});
input.on('input', function() {
doThis();
});
function doThis() {
var wordCounts = {};
var matches = this.value.match(/\b/g);
wordCounts[this.id] = matches ? matches.length / 2 : 0;
var finalCount = 0;
$.each(wordCounts, function(k, v) {
finalCount += v;
});
$('span#word-count').text(finalCount);
}
jsFiddle:http: //jsfiddle.net/YJVPZ/265/
现在doThis()
甚至都行不通。doThis()
如果我用它来包装它的内容input.bind('keyup', function() { ... }
就可以了。我知道这是因为它使用了 undefined this
。我怎样才能传递变量input
作为参数传递?
有没有办法一起使用 .bind 和 .on 来调用相同的函数,而不是像我现在拥有的两个单独的实例?