下面的代码好奇怪啊在 add 函数中,已经把全局变量 cnt 加1了,并且通过 alert 已经能够清楚的知道这个变量的值的变化情况
但是在 onClick1 函数中,连续两次 alert 变量 cnt 的值,却显示的结果不一样<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
var cnt = 0; function add(){
alert("before = " + cnt);
cnt++;
alert("after = " + cnt);
} function onClick1(){
document.getElementById("t1").focus();
document.getElementById("t2").focus();
document.getElementById("btn").focus();
alert(cnt);
alert(cnt);
}
</script>
</HEAD>
<BODY>
<form name="form1">
<input type="text" name="t1" id="t1" onblur="add()" /><br/>
<input type="text" name="t2" id="t2" onblur="add()" /><br/>
<input type="button" value="test" id="btn" onclick="onClick1()" />
</form>
<span id="sp1" style="color: red">abc</span>
</BODY>
</HTML>
但是在 onClick1 函数中,连续两次 alert 变量 cnt 的值,却显示的结果不一样<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
var cnt = 0; function add(){
alert("before = " + cnt);
cnt++;
alert("after = " + cnt);
} function onClick1(){
document.getElementById("t1").focus();
document.getElementById("t2").focus();
document.getElementById("btn").focus();
alert(cnt);
alert(cnt);
}
</script>
</HEAD>
<BODY>
<form name="form1">
<input type="text" name="t1" id="t1" onblur="add()" /><br/>
<input type="text" name="t2" id="t2" onblur="add()" /><br/>
<input type="button" value="test" id="btn" onclick="onClick1()" />
</form>
<span id="sp1" style="color: red">abc</span>
</BODY>
</HTML>
document.getElementById("t1").focus();
document.getElementById("t2").focus();
document.getElementById("btn").focus();
alert(cnt);
alert(cnt);
}
这个有问题吧,,获得焦点当然只能有一个,这样执行后只能看到最后获行焦点
这个没问题的我是让它们依次得到焦点。就是说,t1得到焦点后,马上让t2得到焦点,这样t1自然就失去焦点了,于是触发 onblur 事件,使 cnt++
function add(){
// alert("before = " + cnt);
cnt++;
// alert("after = " + cnt);
}
alert(cnt);
前面加个cnt++;
再看看结果,看看执行顺序。
document.getElementById("t1").focus();
document.getElementById("t2").focus();
document.getElementById("btn").focus();
alert(cnt);
alert(cnt);
}这个还是会执行add()方法...