关于onblur事件与onfocus事件的问题 当然要有别的控件先获得焦点才能失去焦点啊,或的是主动的,失去是被动的。如果你只是想两个函数的执行顺序变一下,可以用setTimeout. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try:<input type="text" onblur="alert(2)" id="t1"><input type="text" onmousedown="alert(1)" id="t2"> 我比较同意xinyunyishui(心云意水)的观点。阿信的代码我试过了,最后的结果是2——1——2,不符合楼主要求。所以,我觉得setTimeout()比较合适,虽然可能要麻烦一些。 阿信的方法如果用tab键转换焦点的话不能通过用setTimeout,因为我完整的代码里面失去焦点的时候还要向服务器端提交一个xmlhttp的请求获取数据,已经要用setTimeout来监听readyState,可能用setTimeout也不能实现这个顺序..... 啊,我试的怎么不是呢?try again<input type="text" onblur="alert(2)" id="t1"><input type="text" onfocus=alert(1) onmousedown="onfocus='';onfocus=new Function('setTimeout(\'alert(1)\',100)')"id="t2"><script defer>t1.focus()</script> fason的方法用tab键没问题了,但用mouse click的话就进入了死循环了。不过看了大家的意见,我也有大概的思路了,ths。不过不知道有没有办法不用settimeout来改变事件运行的顺序。明天结贴 怎么你说的我都不会呢?按tab键本来就没问题的也不明白你为什么不用setTimeout,又不是只能用一个 其实触发的顺序并不想我们想的那么理所当然:<input type="text" onblur="alert(3);" id="t1"><input type="text" onfocus="alert(1);alert(2);" id="t2">注意:alert(1)响了2声,一声是自己的,一声是alert(3)的alert(2)响了1声,是自己的alert(3)没有响,alert(1)帮他响过了。看起来是alert(1)之后alert(3)马上被触发了,虽然它的alert对话框在alert(2)之后才显示。我们来证实一下:<input type="text" onblur="alert(emu=3);alert(emu)" id="t1"><input type="text" onfocus="alert(emu=1);alert(emu=2);" id="t2">怎么样?emu的最后值是2而不是3,说明其实alert(emu=2)才是最后运行的。 我想给String构造函数添加一个删除第一个字母的方法,发现它里面的this可以进行字符操作!this不是个对象吗? js 的类中类 设计方式是否有问题? 当图片获得焦点时,如果改变该图片的大小 不讓焦點移出<inputText>,該如何實現? 正则表达式 匹配图片地址有效地址 求几个JS的游戏,要单机的。。。 首尾相连的滚动字幕(同一文档可以加入多个) 数组问题,很困惑! ***这个用javascript应该则么实现?*** 后台接收前台Ajax所传的值 GetAbsolutePathName的用法!!请进!! 菜鸟问大虾
<input type="text" onblur="alert(2)" id="t1">
<input type="text" onmousedown="alert(1)" id="t2">
阿信的代码我试过了,最后的结果是2——1——2,不符合楼主要求。
所以,我觉得setTimeout()比较合适,虽然可能要麻烦一些。
用setTimeout,因为我完整的代码里面失去焦点的时候还要向服务器端提交一个xmlhttp的请求获取数据,已经要用setTimeout来监听readyState,可能用setTimeout也不能实现这个顺序.....
try again
<input type="text" onblur="alert(2)" id="t1">
<input type="text" onfocus=alert(1) onmousedown="onfocus='';onfocus=new Function('setTimeout(\'alert(1)\',100)')"id="t2">
<script defer>
t1.focus()
</script>
不过看了大家的意见,我也有大概的思路了,ths。不过不知道有没有办法不用settimeout来改变事件运行的顺序。明天结贴
按tab键本来就没问题的
也不明白你为什么不用setTimeout,又不是只能用一个
<input type="text" onfocus="alert(1);alert(2);" id="t2">注意:
alert(1)响了2声,一声是自己的,一声是alert(3)的
alert(2)响了1声,是自己的
alert(3)没有响,alert(1)帮他响过了。看起来是alert(1)之后alert(3)马上被触发了,虽然它的alert对话框在alert(2)之后才显示。我们来证实一下:<input type="text" onblur="alert(emu=3);alert(emu)" id="t1">
<input type="text" onfocus="alert(emu=1);alert(emu=2);" id="t2">怎么样?emu的最后值是2而不是3,说明其实alert(emu=2)才是最后运行的。