作品:
<div onclick="UpdateAttributes();">Update</div>
<script>
function UpdateAttributes() {
alert(1);
}
<script>
不起作用:(未定义UpdateAttributes)
<div onclick="UpdateAttributes();">Update</div>
<script>
$(function(){
function UpdateAttributes() {
alert(1);
}
});
<script>
为什么会在这里发生?我以为旧的onload总是最安全的声明吗?
谢谢!
最佳答案
在第二个示例中,UpdateAttributes
仅对ready
回调函数的关闭可见。
它在第一个中起作用,因为该功能是全局可见的。对于第二个示例,要使其正常运行,您可以将其修改为
$(function(){
$('div').click(UpdateAttributes);
function UpdateAttributes() {
alert(1);
}
});
因为
UpdateAttributes
将在回调本身中可见。同样,删除
onclick
本身中的内联div
处理程序。