为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在页面加载时立即单击事件处理程序?

为什么在页面加载时立即单击事件处理程序?

当年话下 2019-06-05 14:36:06
为什么在页面加载时立即单击事件处理程序?我玩一个函数,我想绑定到所有的链接。目前,函数是在页面加载时触发的,而不是在我单击链接时触发的。这是我的密码。(我可以张贴这个功能showDiv(),如果你需要看的话。)你能分辨出我在这里做错了什么还是做了什么蠢事吗?$(document).ready(function(){     $('a.test').bind("click", showDiv());});谢谢!
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

你想通过一个参照系作为回调的函数,而不是函数执行的结果:

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 ) );

在这个例子中,foo使用fizz并返回一个函数,该函数将作为Click事件的回调分配。


查看完整回答
反对 回复 2019-06-05
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

使用下面一行。showDiv()在执行该行时,将调用函数的严格性。

$('a.test').bind("click", showDiv);


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 600 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信