为什么会出现此错误(jquery-1.7.1.js:3256 Uncaught TypeError: Object 50 has no method 'apply' Uncaught TypeError: Object 50 has no method 'apply'
):
var func = function(foo) {
// some code
});
$('.some_class').keyup(func('bar'));
非常感谢:)。
答案 0 :(得分:3)
您正在传递fun
的结果作为要调用的回调。您想要发送功能本身。通过将其包装在匿名函数中来执行此操作:
$('.some_class').keyup(function(){
func('bar');
});
答案 1 :(得分:2)
单独传递func
:func('bar')
正在调用该函数并将其结果传递给.keyup
。
(您在)
)的作业中还有一个额外的func
答案 2 :(得分:0)
将其包装在匿名函数中:
$('.some_class').keyup(function () {
func('bar');
});
答案 3 :(得分:0)
当你做
时$('.some_class').keyup(func('bar'));
它实际上意味着func
的返回值是keyup
的参数。
所以,如果你的功能是这样的
func(foo) { return 5; }
与
相同$('.some_class').keyup(5);
使用匿名函数
$('.some_class').keyup(function(){func('bar');});