javascript onload事件为什么会被覆盖而只执行最后一行的window.load
我把<script....></script>放在HTML文档的head头部开始位置在单独的js文件中写有一个这样的函数:window.onload=function()...
我把<script....></script> 放在HTML文档的head头部开始位置 在单独的js文件中写有一个这样的函数:
window.onload=function()
{
inseat();
}
document.getElementById("seat1").onclick=function(i){jingbao(i);};
为什么这时候onclick事件不能用?
window.onload=function()
{
inseat();
document.getElementById("seat1").onclick=function(i){jingbao(i);};
}
为什么这样单击事件可以执行呢? 展开
window.onload=function()
{
inseat();
}
document.getElementById("seat1").onclick=function(i){jingbao(i);};
为什么这时候onclick事件不能用?
window.onload=function()
{
inseat();
document.getElementById("seat1").onclick=function(i){jingbao(i);};
}
为什么这样单击事件可以执行呢? 展开
展开全部
你放在window.onload里面是指页面加载完后执行,
如果没放在里面,你的第一种情况,根本没有Dom seat1节点
document.getElementById("seat1")没有,
如果不想放在onload里面,你可以把document.getElementById("seat1").onclick=function(i){jingbao(i);};
放在最下面,紧挨着</body>,这样能执行。
注意添加事件有兼容性问题,Onload也有时候不能全部载完的。
如果没放在里面,你的第一种情况,根本没有Dom seat1节点
document.getElementById("seat1")没有,
如果不想放在onload里面,你可以把document.getElementById("seat1").onclick=function(i){jingbao(i);};
放在最下面,紧挨着</body>,这样能执行。
注意添加事件有兼容性问题,Onload也有时候不能全部载完的。
追问
我想把HTML和JS完全分离。
我是这么理解的:执行HTML文档后开始执行JS是吗?然后window.load事件开始进行了是吗?接着document.getElementById("seat1").onclick=function(i){jingbao(i);};HTML文档载入完已经可以获取ID了不是吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你写在了文档最开始,因为
document.getElementById("seat1").onclick=function(i){jingbao(i);};
上面这句你没有写在方法内,那么页面在打开的时候就会执行这一步,而此时页面还没有seat1元素,seat1元素在<head>之后.因此也就没有给onclick事件添加对应的方法.你点击的时候自然没反应啦,你用你的浏览器F12debug一下就可以清楚的看到出错在哪里了
更多追问追答
追问
什么样形式才是写在方法内?我还么看完整本书自学的。
追答
//
function funcName(){
//加在这对大括号中间的就是方法体内
}
//这里是方法体外
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个页面只有一个 onload事件
追问
我是这么理解的:执行HTML文档后开始执行JS是吗?然后window.load事件开始进行了是吗?接着document.getElementById("seat1").onclick=function(i){jingbao(i);};HTML文档载入完已经可以获取ID了不是吗?
追答
哦,不好意思 刚才没看清除你问的。
是这样的。这个是顺序执行的,从上往下。onload是页面渲染完后执行的。
所以第一个 你的getElementById执行的时候页面没渲染完,获取不到值。
第二个是在onload里面,是页面渲染完后再执行的getElementById。能获取到相应对象了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询