您可以使用 JavaScript 执行此操作:
function bar(test) {
alert(test);
}
var foo = bar;
foo('hi');
我希望能够用 jQuery 事件做一些类似的事情:
var foo = $('#bork').click;
foo(function() { alert('I was just clicked.'); });
但是,当页面加载时出现错误:this.bind is not a function
。我对这里的事件做错了吗?有没有更好的方法来达到同样的效果?
最佳答案
其他答案似乎没有解决技术问题:
为什么这样做:
$('#bork').click(function() { alert('I was just clicked.'); });
但不是这个:
var foo = $('#bork').click;
foo(function() { alert('I was just clicked.'); });
两者看起来是一样的,但问题是click
函数实现中的“this
”引用了第一个例子中的jQuery对象,但它在第二个示例中引用了 foo
。由于您尚未定义 foo.bind
,因此在 click
的实现中调用“this.bind
”失败。
这里是 a great article about the ins and outs of binding/scoping in Javascript .
关于javascript - 将 jQuery 事件作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587905/