内联js onclick 函数顺序问题

想通过onclick='test'调用函数,发现如下问题,求证。

场景一:可以正常执行

<script>
$(function($){

    function test(){
      console.log('123');
    }
});
</script>

<button onclick='test()' >adadas</button>

场景二:test:34 Uncaught ReferenceError: test is not defined

<button onclick='test()' >adadas</button>

<script>
$(function($){

    function test(){
      console.log('123');
    }
});
</script>

问题:如果想用onclick='test()',只能 先把 函数写在 需要调用的元素之前吗?

阅读 4.3k
2 个回答

第一个能执行吗?两个都是作用域的问题吧,onclick="test()"调用的是全局的,通过$(function(){})声明的是在这个匿名函数的作用域里的

作用域的问题,2个都不能执行,`
<script>

function test(){
  console.log('123');
}

</script>
<button onclick='test()' >adadas</button>`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题