【问题标题】:Javascript executes function immediately when passing arguments, undesiredJavascript 在传递参数时立即执行函数,不需要
【发布时间】:2023-04-04 11:38:01
【问题描述】:

当我运行代码时:

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

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

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

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

问题是我似乎无法传递参数并使其按预期运行,但我希望能够传递参数。

如果这还不明显,我对 Javascript 完全陌生,所以请保持您的响应代码简单易懂,提前致谢!

【问题讨论】:

    标签: javascript function arguments execute args


    【解决方案1】:

    试试这个解决方案吧

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

    说明: 点击事件可以使用always回调函数。

    当你这样调用时(activateProTip(1)),this 不会绑定事件,所以它会立即调用

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-10-23
        • 2019-01-17
        • 1970-01-01
        • 2012-09-15
        • 2021-08-17
        • 1970-01-01
        • 2021-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多