Javascript 在传递参数时立即执行函数,这是不希望的

问题描述 投票:0回答:2

当我运行代码时:

 $(".pro-tip-1").mouseover(activateProTip(1));

它立即调用函数activateProTip。它不会等待鼠标悬停成为真实场景。

现在,如果我取出正在传递的参数 (1),它会按预期运行。它等待鼠标悬停为真,然后调用该函数。这就是我想要的,但是我也想通过一个论点

 $(".pro-tip-1").mouseover(activateProTip);

问题是我似乎无法传递一个论点并让它按预期运行,但我希望能够传递一个论点。

如果这还不是很明显,我是 Javascript 的新手,所以请保持您的代码响应简单易懂,提前致谢!

javascript function arguments execute args
2个回答
1
投票

这是预期的,所需的参数是一个函数。如果您改为传递一个语句,它将立即被解释(可能您可以调用一个函数,该函数实际上返回一个您想要在鼠标悬停时调用的函数!)。您可以改为编写一个函数,然后使用参数调用

activateProTip

$(".pro-tip-1").mouseover(() => activateProTip(1));

1
投票

试试这个解决方案它会起作用

$(".pro-tip-1").mouseover(()=>activateProTip(1));

说明: 您可以始终对点击事件使用回调函数。

当你像这样调用时(activateProTip(1)),这不会绑定事件,这就是为什么它会立即调用

© www.soinside.com 2019 - 2024. All rights reserved.