为了账号安全,请及时绑定邮箱和手机立即绑定

哪些函数应该写在window.onload之内,哪些应该写在外面?

      window.onload = function(){
     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
        var tr =  document.getElementsByTagName("tr");
        for(var i=0;i<tr.length;i++){
            tr[i].onmouseover = function(){
              this.style.backgroundColor="#f2f2f2";
            }
            tr[i].onmouseout = function(){
              this.style.backgroundColor="#fff";
            }
        }
        // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
          var btn = document.getElementById("btn");
          btn.onclick = function(){
            var oldtable = document.getElementById("table");
            var newtr = document.createElement("tr");
            newtr.innerHTML = "<td>xh001</td><td>王小明</td><td><a href='javascript:;' onclick='del2(this)'>删除</a></td> ";
            oldtable.appendChild(newtr);
          }
        // 创建删除函数
}
   
   function del2(obj){//obj是外面传入的参数this,也就是删除字段的节点TD
    var a=obj.parentNode.parentNode.parentNode;//获取最外层节点table
    var b=obj.parentNode.parentNode;//获取第二层节点TR,TR里有3个TD,为一行
    a.removeChild(b);//利用父节点table删除子节点TR
}

onclick事件放在window.onload函数外就不触发,而del2()放在window.onload就不触发,这是因为什么?

正在回答

3 回答

要有个外部调用,也就是在html页面里有个onclick="function()",你在script标签里把执行click发生的事件写好,应该就OK了吧

0 回复 有任何疑惑可以回复我~

你看错了   它代码里面穿插的那些注释除了变换背景色那个都在window.onload之外,你可以重置代码看看,且那两个函数都在href和onclick中被调用了,而onmouseover只在函数中出现了,而函数没法自调用,而且该事件必须处于实时监测的状态,所以就加上了window.onload让它在页面加载完立即执行

0 回复 有任何疑惑可以回复我~

可以由外部调用像是按钮  链接等等就不用写window.onload,window.onload是指页面加载完立即执行的意思

0 回复 有任何疑惑可以回复我~
#1

Kevin3764939 提问者

不是吧,本例的添加按钮也是写在onload里面的,放外面不触发。而且本例放在window.onload里的添加按钮和mouseover事件也是需点击和鼠标覆盖才触发,并不是加载完立即执行。
2016-08-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪些函数应该写在window.onload之内,哪些应该写在外面?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信