
一个简单的javascript逻辑顺序问题 20
先有一个按钮1,点击执行函数1出现按钮2,点击按钮2执行函数2弹窗。但是,函数2必须放在函数1内部;放在平行于函数1的下放则不能执行。其中是什么逻辑原因呢?代码如下。<b...
先有一个按钮1,点击执行函数1出现按钮2,点击按钮2执行函数2弹窗。
但是,函数2必须放在函数1内部;放在平行于函数1的下放则不能执行。
其中是什么逻辑原因呢?
代码如下。
<body>
<input type="button" />
</body>
<script type="text/javascript">
window.onload=function ()
{
document.getElementsByTagName("input")[0].onclick=function ()
{
var oBtn=document.createElement("button");
document.getElementsByTagName("body")[0].appendChild(oBtn);
document.getElementsByTagName("button")[0].onclick=function ()
{
alert("");
}
}
/*按钮2的弹窗函数放在这里则不行
document.getElementsByTagName("button")[0].onclick=function ()
{
alert("");
}*/
}
</script>
</html> 展开
但是,函数2必须放在函数1内部;放在平行于函数1的下放则不能执行。
其中是什么逻辑原因呢?
代码如下。
<body>
<input type="button" />
</body>
<script type="text/javascript">
window.onload=function ()
{
document.getElementsByTagName("input")[0].onclick=function ()
{
var oBtn=document.createElement("button");
document.getElementsByTagName("body")[0].appendChild(oBtn);
document.getElementsByTagName("button")[0].onclick=function ()
{
alert("");
}
}
/*按钮2的弹窗函数放在这里则不行
document.getElementsByTagName("button")[0].onclick=function ()
{
alert("");
}*/
}
</script>
</html> 展开
1个回答
展开全部
如果函数2与函数1平行,那么:
在window.onload的时候,先后发生两件事:
(1)函数1:定义了按钮1被点击时将会发生的事:按钮2的创建,以及按钮2的点击事件。(但是这里只是写好了剧本,演员还没有上台。只有当点击真正发生时,才会创建按钮2)
(2)函数2:试图访问按钮2,并设定其点击事件(而由于第1条括号中的原因,按钮2并不存在)
在window.onload的时候,先后发生两件事:
(1)函数1:定义了按钮1被点击时将会发生的事:按钮2的创建,以及按钮2的点击事件。(但是这里只是写好了剧本,演员还没有上台。只有当点击真正发生时,才会创建按钮2)
(2)函数2:试图访问按钮2,并设定其点击事件(而由于第1条括号中的原因,按钮2并不存在)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询