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

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

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

原文链接:https://www.f2er.com/jquery/183526.html

猜你在找的jQuery相关文章