我玩的是一个功能,我想绑定到所有的链接。目前,该功能在页面加载时触发,而不是单击链接时触发。
这是我的代码(如果你需要看到它,我可以在函数showDiv()中查看。)你能告诉我在这里做错什么事吗?
@H_404_4@$(document).ready(function(){ $('a.test').bind("click",showDiv()); });谢谢
解决方法
您希望将对函数的引用传递给回调,而不是函数执行的结果:
showDiv()返回一些值;如果没有使用return语句,则返回undefined。
showDiv是对应该执行的函数的引用。
这应该工作:
@H_404_4@$(document).ready(function(){ $('a.test').bind("click",showDiv); }); @H_404_4@...bind('click',function(){ foo.showDiv(a,b,c); ...more code... });在某些情况下,您可能希望使用函数返回的值作为回调:
@H_404_4@function function foo(which) { function bar() { console.log('so very true'); } function baz() { console.log('no way!'); } return which ? bar : baz; } ...click( foo( fizz ) );在此示例中,使用fizz评估foo,并返回一个将被分配为click事件的回调的函数。