Javascript 传递参数时立即执行函数,不需要
Javascript executes function immediately when passing arguments, undesired
当我运行代码:
$(".pro-tip-1").mouseover(activateProTip(1));
它立即调用函数activateProTip。它不会等待鼠标悬停成为真实场景。
现在,如果我取出正在传递的参数 (1),它 运行 是预期的。它等待鼠标悬停为真,然后调用该函数。这就是我想要的,但是我也想传递一个论点。
$(".pro-tip-1").mouseover(activateProTip);
问题是我似乎无法按预期传递参数并使其 运行,但我希望能够传递参数。
我是 Javascript 的新手,如果这还不是很明显,所以请保持您的响应代码简单易懂,在此先感谢!
试试这个解决方案,它会起作用
$(".pro-tip-1").mouseover(()=>activateProTip(1));
说明:
您可以对点击事件使用始终回调函数。
当你像这样调用时(activateProTip(1)),这不会绑定事件,这就是为什么它会立即调用
这是预期的,所需的参数是一个函数。如果您改为传递一个语句,它将立即被解释(可能您可能调用了一个实际上 returns 您想在鼠标悬停时调用的函数!)。您可以改为编写一个函数,然后使用参数调用 activateProTip
。
$(".pro-tip-1").mouseover(() => activateProTip(1));
当我运行代码:
$(".pro-tip-1").mouseover(activateProTip(1));
它立即调用函数activateProTip。它不会等待鼠标悬停成为真实场景。
现在,如果我取出正在传递的参数 (1),它 运行 是预期的。它等待鼠标悬停为真,然后调用该函数。这就是我想要的,但是我也想传递一个论点。
$(".pro-tip-1").mouseover(activateProTip);
问题是我似乎无法按预期传递参数并使其 运行,但我希望能够传递参数。
我是 Javascript 的新手,如果这还不是很明显,所以请保持您的响应代码简单易懂,在此先感谢!
试试这个解决方案,它会起作用
$(".pro-tip-1").mouseover(()=>activateProTip(1));
说明: 您可以对点击事件使用始终回调函数。
当你像这样调用时(activateProTip(1)),这不会绑定事件,这就是为什么它会立即调用
这是预期的,所需的参数是一个函数。如果您改为传递一个语句,它将立即被解释(可能您可能调用了一个实际上 returns 您想在鼠标悬停时调用的函数!)。您可以改为编写一个函数,然后使用参数调用 activateProTip
。
$(".pro-tip-1").mouseover(() => activateProTip(1));