Blur事件源的捕捉以及各种主流浏览器的兼容
背景:
在项目中采用了验证框架,当用户触发了blur事件后,即会对此focusout的input进行校验。
但是当用户在blur时正发点击了某个button后,就悲剧了,系统只会执行blur方法,却不会执行button上的click方法。
可以看以下的例子
<script language="JavaScript" src="jquery.js" type="text/javascript"></script><script> $('input:visible').live('blur', function(e){ alert('blur');});</script><body><input type="text" name="text_test"/><a id="darcyYang" href="javascript:void(0)" name="darcyYang" onclick="alert('click')">click</a></body>var browser = navigator.userAgent;if (browser.indexOf('MSIE') != -1){if('darcyYang' == document.activeElement.id ) {$("#darcyYang").click();return false;}}else if(browser.indexOf('Firefox') != -1){ if('click' == e.originalEvent.explicitOriginalTarget.wholeText){$("#darcyYang").click();return false;}}$("#darcyYang").mousedown(function(){ $("#darcyYang").click(); return false; });var browser = navigator.userAgent;if (browser.indexOf('MSIE') != -1){if('darcyYang' == document.activeElement.id ) {$("#darcyYang").click();return false;}}else if(browser.indexOf('Firefox') != -1){ if('click' == e.originalEvent.explicitOriginalTarget.wholeText){$("#darcyYang").click();return false;}}else{$("#darcyYang").mousedown(function(){ $("#darcyYang").click(); return false; });}