相信大家都用过 html onclick 与js onclick 这两个事件函数。先来看一下两者的用法!
html中的onclick的用法:
列子:<a href="#" οnclick=" alert("hello world")">Example</a>
html 中的onclick 是作为一个属性,后面写上js代码,若要写多条代码则可以用“”;“”来分开语句
再看一下js 中的onclick
列子:function test()
{
this.οnclick=alert("hi");
}
js里面的是作为this对象的一个属性。这里为了方便就用了this,即给当前的对象加一个onclick事件,当然也可用 getElementsById等方法找到你需要增加onclick事件,这里就不再叙述了!
说了半天还没说到两者的区别,现在进入正题。
我当初是猜想js里用onclick来给对象加一事件,是不是改变了dom 树里该元素onclick属性????!!!!
于是我就做了如下测试:
<script type="text/JavaScript">
function testOnclick()
{
var link = document.getElementsByTagName('a');
this.οnclick=alert("hello");
for(var i=0;i<link.length;i++)
alert(link[i].getAttribute('onclick'));
}
</script>
</head>
<body>
<a href="#" οnclick="testOnclick()">Test</a>
</body>
我们主要看函数testOnclick();这个测试思路是这样的:我们先改变onclick事件,然后再输出dom树上的该元素的onclick属性值。如果为"alert("hello")"就说明改变了,如果是输出“”testOnclick()“”就说明并不是修改了dom树上该对象的onclick属性!
测试截图:
从结果可以判断并不是修改了dom树!其实是js自己的一个监听机制造成的!有时间会将js的监听机制来补充一下。