jquery – 为什么点击事件处理程序在页面加载时立即触发?

前端之家收集整理的这篇文章主要介绍了jquery – 为什么点击事件处理程序在页面加载时立即触发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我玩的是一个功能,我想绑定到所有的链接。目前,该功能页面加载时触发,而不是单击链接时触发。

这是我的代码(如果你需要看到它,我可以在函数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事件的回调的函数

猜你在找的jQuery相关文章