<body>
<button onclick='my_function()'>按钮1</button>
<button onclick='my_function()'>按钮2</button>
<button onclick='my_function()'>按钮3</button>
<script>
function my_function()
{
var str=document.getElementsByTagName('button')
for(var i=0;i<str.length;i++)
{
var myfn=function(a)
{
var c=0;
str[a].onclick=function()
{
c++
alert("点击次数为:"+c)
}
}(i)
}
}
my_function()
</script>
</body>
——————————————————————————————————
<body>
<button onclick='my_function()'>按钮1</button>
<button onclick='my_function()'>按钮2</button>
<button onclick='my_function()'>按钮3</button>
<script>
function my_function()
{
var str=document.getElementsByTagName('button')
for(var i=0;i<str.length;i++)
{
var myfn=function(a)
{
var c=0;
str[a].onclick=function()
{
c++
alert("点击次数为:"+c)
}
}(i)
}
}
</script>
</body>
问题来了:1、为什么在第二个代码中(script部分)中加入my_function()后,点击button,就不会空点一次,而直接进行str[a].onclick=function(){c++alert("点击次数为:"+c)}计数,具体原理是啥?2、明明button点击事件是onclick='my_function()',他为什么不只执行my_function(),难道body加载过script代码后,对button点击事件有影响??3、alert(my_function())弹出的undefined,具体指的是什么,,(my_function()无返回值)
这个和事件冒泡以及绑定有关的