Javascript Jquery函数未定义错误
您好,这是我在js页面中的代码,名称为script.jsJavascript 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&
(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中的脚本标记中。
这将有助于您更好地了解