为什么点击事件处理程序在页面加载时立即触发?
我正在玩一个我想绑定到所有链接的函数。 目前该function会在页面加载时触发,而不是点击链接。
这是我的代码。  (如果你需要的话,我可以在函数showDiv()过去showDiv()你能告诉我在这里做错了什么吗? 
 $(document).ready(function(){ $('a.test').bind("click", showDiv()); }); 
谢谢
你想传递一个函数的引用作为callback,而不是函数执行的结果:
  showDiv()返回一些值; 如果没有使用return语句,则返回undefined 。 
  showDiv是对应该执行的函数的引用。 
这应该工作:
 $(document).ready(function(){ $('a.test').bind("click", showDiv); }); 
或者,您可以使用匿名函数来执行更高级的function:
 ...bind('click', function(){ foo.showDiv(a,b,c); ...more code... }); 
在某些情况下,您可能希望使用函数返回的值作为callback:
 function function foo(which) { function bar() { console.log('so very true'); } function baz() { console.log('no way!'); } return which ? bar : baz; } ...click( foo( fizz ) ); 
 在这个例子中, foo使用fizz进行评估,并返回一个函数,该函数将被指定为click事件的callback函数。 
看起来你直接在那里调用函数showDiv(并将showDiv()的返回结果绑定到click处理程序,而不是直接绑定它。
你想要的东西
 $(document).ready(function() { $('a.test').bind("click", showDiv); }); 
 使用下面的行。 当执行该行时, showDiv()将调用该函数。 
 $('a.test').bind("click", showDiv); 
 将其更改为: $('a.test').bind("click", showDiv);  (不要把showDiv放在parens上,因为你想通过函数引用)。