作品:

<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处理程序。

07-24 09:50