您可以使用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
。我在这里做的事情有问题吗?是否有更好的方法来获得相同的效果?
答案 0 :(得分:4)
其他答案似乎没有解决技术问题:
为什么这样做:
$('#bork').click(function() { alert('I was just clicked.'); });
但不是这样:
var foo = $('#bork').click;
foo(function() { alert('I was just clicked.'); });
这两个似乎是相同的,但问题是this
函数的实现中的“click
”引用了第一个示例中的jQuery对象,但它引用了{{ 1}}在第二个例子中。由于您尚未定义foo
,因此foo.bind
实施中对“this.bind
”的调用失败。
这是a great article about the ins and outs of binding/scoping in Javascript。
答案 1 :(得分:1)
$('#bork').bind('click', foo);
function foo() { alert('i was just clicked'); }
答案 2 :(得分:0)
我认为您正在寻找bind
功能。
$('#bork').bind("click", function() {
alert('I was just clicked.');
});
答案 3 :(得分:0)
尝试以下方法:
$("#bork").bind("click", function() { alert("I was just clicked"); });
答案 4 :(得分:0)
您需要将foo定义为使样本正常工作的函数。如果你稍微改变foo的定义它将起作用:
var foo = function(f) {$('#bork').click(f);};
foo(function() { alert('I was just clicked.'); });