我有两个文件:
文件A:
var A = (function () {
return {
bindClick: function (fun) {
$('#btnId').on('click', fun);
}
};
}());
文件B:
(function ($) {
$(document).ready(function () {
var doSomething = function (what) {
console.log(what);
}
A.bindClick(doSomething(1));
});
})(jQuery);
这打印我“绑定”只有一次,当我点击按钮时没有任何事情发生..
绑定作为参数传递的函数的正确方法是什么?
答案 0 :(得分:0)
除了做某种令人费解的做事方式外,它似乎应该有效。事实上,它确实适用于评论者与...链接的jsfiddles。
我猜你的例子中没有其他代码会导致问题。在javascript控制台中是否有任何错误消息?
修改强>
A.bindClick(doSomething);
更改为A.bindClick(doSomething(1));
的更新代码不起作用,因为您立即触发doSomething
方法并且bindClick从该函数调用接收返回值undefined
。
答案 1 :(得分:0)
问题在于我打电话:
A.bindClick(doSomething(1));
但我错了函数的行为:它必须以这种方式返回一个函数:
var doSomething = function(what) {
return function() {
console.log(what);
}
}
我希望它对某人有用!