当我运行代码时:
$(".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((时,这不会绑定事件,这就是为什么它会立即调用