jqueryready块内部定义的函数与外部定义的函数有什么区别
我向一个具有onclick属性的按钮注册了一个函数,并在$()块中定义了这个函数(我知道这是一个不好的做法,这只是一个示例),当我单击按钮时,出现一个错误:未捕获引用错误:未定义hello。这是我的密码:jqueryready块内部定义的函数与外部定义的函数有什么区别,jquery,function,Jquery,Function,我向一个具有onclick属性的按钮注册了一个函数,并在$()块中定义了这个函数(我知道这是一个不好的做法,这只是一个示例),当我单击按钮时,出现一个错误:未捕获引用错误:未定义hello。这是我的密码: <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function(){ function hello()
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(function(){
function hello(){
alert('hello');
}
});
</script>
</head>
<body>
<input type="button" id="btn" value="click" onclick="hello()"/>
</body>
$(函数(){
函数hello(){
警惕(“你好”);
}
});
如果我把hello函数代码从$()块中放出来,它就会工作。我知道解析DOM时会执行$(),当我单击按钮时,DOM肯定已经被解析了,那么为什么它会报告错误呢?
谢谢。除了在
$内执行(未定义)的函数外,没有区别。ready
块保证在DOM准备好被访问/操作后执行
你的问题是范围界定;您创建了一个本地函数,该函数在处理事件的全局范围内不可访问。除了在
$内执行(未定义)的函数外,没有区别。ready
块保证在DOM准备好访问/操作后执行
你的问题是范围界定;您创建的本地函数在处理事件的全局范围内不可访问。您的代码假定hello是一个全局函数,而事实并非如此
$(function(){
function hello(){
alert('hello');
}
$("#btn").click(hello);
});
您的代码假定hello是一个全局函数,而事实并非如此
$(function(){
function hello(){
alert('hello');
}
$("#btn").click(hello);
});
名为
hello
的函数的作用域是传递给$()
的匿名函数,因此无法从onclick处理程序调用该函数。名为hello
的函数的作用域是传递给$()
的匿名函数,因此无法从onclick处理程序.window.hello=function()调用该函数{将使其成为全局的。反正内联js很烂。hello=function(){将使其成为全局的。反正内联js很烂