我玩的是一个功能,我想绑定到所有的链接。目前,该功能在页面加载时触发,而不是单击链接时触发。
这是我的代码(如果你需要看到它,我可以在函数showDiv()中查看。)你能告诉我在这里做错什么事吗?
$(document).ready(function(){ $('a.test').bind("click",showDiv()); });
谢谢
解决方法
您希望将对函数的引用传递给回调,而不是函数执行的结果:
showDiv()返回一些值;如果没有使用return语句,则返回undefined。
showDiv是对应该执行的函数的引用。
这应该工作:
$(document).ready(function(){ $('a.test').bind("click",showDiv); });
...bind('click',function(){ foo.showDiv(a,b,c); ...more code... });
在某些情况下,您可能希望使用函数返回的值作为回调:
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事件的回调的函数。