最近在看教材,教材里讲的是先分配时间,再调用方法,如下:
<script type="text/javascript">
document.getElementById('input_1').onclick=function(){show();}
form1.name_1.onclick();
</script>
这样的话,打开浏览器,直接就弹出这个告警框了,当然点击也会弹出。
我索性将第二局调用删掉了,竟然是没问题的。如下:
<script type="text/javascript">
document.getElementById('input_1').onclick=function(){show();}
// form1.name_1.onclick();
</script>
那个上面form1.那一句已经变成注释了。
求问各位朋友这点是哪里出错了吗?还是本身就不需要第二句调用那个操作的。
区别是:
第一行代码是给 input_1 这个 id 的元素绑定事件,此时需要由用户手动点击该表单,才能触发 show() 方法。
第二行是用 js 代码触发 form1.name 这个表单的 onclick 事件,相当于帮用户点了一下这个表单。
注释掉第二行后,如果你手动点一下 name 这个表单按钮,跟不注释掉的效果是一样的。前端开发过程中,有时需要用代码触发一些事件,就是onclick() 这个的作用,直接调用事件的函数。
这个是本身就不需要第二句调用那个操作的。
input_1 和 form1.name_1 是同一个元素吗?
是的话,注解掉第二行后应该是不会直接执行show()的,只有点击才会执行show()。
如果你还是直接执行了show(),应该是你在其它地方调用了show()。或者这个警告框标签本来就是显示的。
也可能是浏览器缓存了修改前的页面,你清理下浏览器缓存试试。
第二句话相当于页面一进来自动点击
document.getElementById('input_1').onclick=function(){show();}
这句意思给 input_1 加上一个操作 操作行为 为点击
form1.name_1.onclick();
这句是 对 name_1 执行 点击操作
理论上 如果你想在初始化的时候执行这个点击中的方法 可以 直接写成 show();
第一句是设置点击触发,第二句是直接调用
xxx.onclick=show();//onclick鼠标点击事件
和
show();
就是点了才触发和直接触发一个道理