【问题标题】:How to use a function in onclick that was declared inside window.onload?如何在 onclick 中使用在 window.onload 中声明的函数?
【发布时间】:2012-03-10 20:22:40
【问题描述】:

这是我的代码:

<html>
    <head>
    <script type="text/javascript">
    window.onload = function(){
        function b(){c();}
    }
    function c(){alert('');}
    </script>
    </head>
    <body>
    <input type="button" onclick="b()">
    </body>
</html>  

Q1 : 我想在 body 标签中的按钮点击事件时访问函数 b()。
Q2 : 我想从window.onload 中的函数 b()。

【问题讨论】:

  • Q1 不可能这样;如果你能跑b,Q2应该没问题。
  • 这毫无意义。为什么不在按钮点击时执行c()?在任何情况下,您都没有一种简单的方法可以访问b(),因为它在unload 处理程序的匿名函数的范围内。我认为您最好尝试解释您想要的行为而不是您尝试的解决方案。例如,“如何在加载和单击按钮时运行相同的代码?”如果这就是你想要做的。
  • 你能解释一下匿名函数定义和卸载处理程序的意思吗?

标签: javascript function dom-events


【解决方案1】:

Q1 : 我想在 body 标签中的按钮点击事件时访问函数 b()。

没关系,您只需要能够访问它。 onclick="b()"onclick="window.b()" 相同,因此显然无法正常工作。您可以使 window.b 评估为正确的函数,也可以通过代码以编程方式建立事件。

Q2:我想从 window.onload 中的函数 b() 访问函数 c()。

没关系,而且它已经这样工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2021-10-17
    • 2023-03-20
    • 2021-12-17
    相关资源
    最近更新 更多