我知道您可以通过以下方式调用函数:
$(".foo").on("click", function);
// Assume 'function' is an actual function declared elsewhere.
但有没有办法将param传递给使用该样式的函数?我知道你可以这样做:
$(".foo").on("click", {namespace: this}, function (e) {
var that = e.data.namespace;
that.function(that);
});
但这不是我想写的方式。我想在.click事件上调用已创建的函数,并使用顶部示例的单行表示法将params传递给它。我该怎么做?
答案 0 :(得分:5)
不幸的是,你无法完全按照你所要求的那样做,但是你可以通过调用回调函数中的函数来完成:
$(".foo").on('click', function () { namedFunction.call(this, yourArguments); });
如果适合您,可以使用.apply
代替.call
。
答案 1 :(得分:2)
此外,您还可以使用bind
:
function namedFunction(yourArgument, e) {
console.log(yourArgument);
}
$(".foo").on("click", namedFunction.bind(this, yourArgument));
此方法已添加到ECMA-262,第5版,并且可能有compatibility problems旧版浏览器。您可以查看 MDN 以获取可能的解决方法。