onblur和onclick的冲突解决原名:onBlur killing onClick but not if setTimeout is used

原文地址:http://stackoverflow.com/questions/6391997/onblur-killing-onclick-but-not-if-settimeout-is-used


If you put cursor in the first input, then click the button, you get one message.

If you put the cursor in the second one (with the setTimeout), you get both messages.

Why doesn't the 'button was clicked' message display in the first scenario?

Conversely, what is it about the setTimeout that makes the second one show both alerts?



<html>
<head>
  <script type='text/javascript'>
    function testOne() {
      alert('button was clicked');
    }
    function testTwo() {
      alert ('focus left the input');
    }
  </script>
</head>
<body>
  <input name="input1" οnblur="testTwo()" />
  <input name="input2" οnblur="setTimeout(function(){testTwo();}, 100)" />
  <button name="button1" οnclick="testOne()">Button</button>
</body>
</html>

英文不太好,就是给大家一个思路吧。感谢国外友人的分享,技术无国界。同时希望国内的论坛氛围能好一点,自己在别人的帮助下找到了解决方案,也可以用解决方案来结贴。国内论坛好多楼猪都是这么结尾:“我已自己找到解决方案,谢谢大家...然后没有然后了···

大家有不同意见,可以交流下····


onblur和onclick的冲突解决原名:onBlur killing onClick but not if setTimeout is used



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值