<
html
>
<
head
>
<
script
type
=
"text/javascript"
>
var a3 = document.getElementById('a3');
a3.onclick= function(){alert('a3');};
</
script
>
</
head
>
<
body
>
<
a
id
=
"a1"
href
=
"#"
onclick
=
"(function(){alert('a1');})() "
>正确</
a
>
<
a
id
=
"a2"
href
=
"#"
onclick
=
"function(){alert('a2');}"
>错误</
a
>
<
a
id
=
"a3"
href
=
"#"
>错误吗?</
a
>
</
body
>
</
html
>
结果就是a1和a3的点击事件会正常执行,a2就会有错误。
可是a1、a2、d3的点击事件的绑定方式都是一样的使用匿名函数,而且a2和a3的匿名函数的写法也都是"function(){}",为啥a2这种写法不行呢?
原因:
a1是匿名函数立即执行 也就是你点击后生成函数后立即运行这个函数 a2只是定义函数 点击后定义了一个函数而已 没执行 a3你可以看做有个属性是onclick 该属性的类型是个函数 当你点击时执行这个函数
详见http://blog.csdn.net/jbgtwang/article/details/6608265
http://www.cnblogs.com/chenxianbin89/archive/2010/01/28/1658392.html
转载请注明原文地址: https://ju.6miu.com/read-675257.html