为什么JavaScript里在设置单击事件后,事件却在加载完成后立即执行了?

这样写可以达到效果:

$('button').click(function()
{
    $('img').slideUp();
});

这样写,事件就会在加载之后立即发生:

let func = function(temp)
{
    temp.slideUp();
};
$('button').click(func($('img')));

求解,谢谢!

阅读 5.4k
2 个回答

你这样直接调用

$('button').click(func($('img')));
等价于$('button').click(undefined);//undefined是func的返回值

要达到预想的效果

let func = function(temp)
{
    return function(){
        temp.slideUp();
    }
};
$('button').click(func($('img')));

func($("img")) 就是对一个函数的调用,所以执行了。 你的情况是需要在外面套一个function

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题