我尝试使用参数调用jquery中的函数
$(document).ready( function() {
$('#id_pros').bind('change', wordCounter('id_pros_wordCountLabel') );
});
function wordCounter(item){
....
}
如果我没有传递参数id_pros_wordCountLabel
,它的效果很好,但现在它没有调用wordCounter。
我的代码哪个部分出错?
由于
答案 0 :(得分:1)
正确的做法是:
$(document).ready( function() {
$('#id_pros').bind('change', function() {
wordCounter('id_pros_wordCountLabel');
});
});
您自己的代码会将wordCounter
的返回值(当场调用,而不是在change
事件触发时)传递给bind
。 bind
期望收到一个函数,wordCounter
可能会返回其他内容,因此当change
事件触发时,您看不到任何事情发生。
答案 1 :(得分:1)
.bind()
需要一个函数参数,如下所示:
$('#id_pros').bind('change', wordCounter);
请注意wordCounter
上没有括号。这意味着它是对函数的引用,而不是对函数的调用 - 这是在添加括号时发生的情况。使用匿名函数来解决问题:
$('#id_pros').change(function ()
{
wordCounter('id_pros_wordCountLabel');
});
(我也将.bind('change', ...)
更改为.change(...)
,这相当于更简洁。)