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



当我运行代码时:

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

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

现在,如果我去掉正在传递的参数(1(,它将按预期运行。它等待mouseover为true,然后调用该函数。这就是我想要的,但我也想通过一个论点。

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

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

如果这还不明显的话,我对Javascript完全陌生,所以请让你的代码简单易懂,提前感谢!

这是预期的,所需的参数是一个函数。如果您传递一个语句,它将立即被解释(可能您已经调用了一个函数,该函数实际上返回了您想在mouseover上调用的函数!(。相反,您可以编写一个函数,然后用该参数调用activateProTip

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

尝试这个解决方案,它将工作

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

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

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

最新更新