Javascript Jquery函数未定义错误

Javascript Jquery函数未定义错误,javascript,jquery,Javascript,Jquery,您好,这是我在js页面中的代码,名称为script.js (function ($) { myfunc() { //some jquery codes } } 我在这样的html页面中使用这个函数 <html> <script src='js/script.js'></script> <button id='btnSent'>sent</button> <script&

您好,这是我在js页面中的代码,名称为script.js

    (function ($) {
    myfunc()
    {
        //some jquery codes 
    }
} 
我在这样的html页面中使用这个函数

    <html>
<script src='js/script.js'></script>
<button id='btnSent'>sent</button>
<script>
    (function ($) {
         $('#btns').click(function () {
            myfunc();
         })
    }(jQuery));
</script>
</html>

发送
(函数($){
$('#btns')。单击(函数(){
myfunc();
})
}(jQuery));

但在控制台中,我有一个myfunc是未定义的错误

myfunc
不是全局性的-由于普通的Javascript作用域规则,它只在上面的
(函数($){
块内部可见。尝试只使用一个(外部)函数,这样内部块中的任何其他内容都可以看到同样位于内部块中的
myfunc

(function ($) {
  function myfunc(){
    //some jquery codes 
  }
  $('#btns').click(function () {
    myfunc();
  })
}(jQuery));
如果出于某种原因必须将功能分开,可以将
script.js
分配给
窗口
变量:

(function ($) {
  window.myfunc = function() {
    //some jquery codes 
  }
})(jQuery);

您在这两种情况下都在使用IIFEs。myfunc()的作用域位于script.js中的IIFE内,而不在全局作用域内。 因此,您无法从html中的生活访问它。 要么不要在脚本中使用iLife.js只要

function myfunc(jQuery)
    {
        //some jquery codes 
    }
或者将myfunc()放在iLife中的脚本标记中。 这将有助于您更好地了解