1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

js焦点事件

  焦点事件会在页面获得或失去焦点时触发。利用这些事件并与document.hasFocus()方法及 document.activeElement属性配合,可以知晓用户在页面上的行踪

  焦点事件共包括下面4个

blur

  blur事件在元素失去焦点时触发。这个事件不会冒泡

focus

  focus事件在元素获得焦点时触发。这个事件不会冒泡

focusin

  focusin事件在元素获得焦点时触发。这个事件与focus事件等价,但它冒泡

focusout

  focusour事件在元素失去焦点时触发。这个事件与blur事件等价,但它冒泡

  [注意]关于focusin和focusout事件,除了IE浏览器支持DOM0级事件处理程序,其他浏览器都只支持DOM2级事件处理程序

<!DOCTYPE html>  <html>  	<head>  		<meta charset="UTF-8">  		<title></title>  </head>  <body>  <div id="box"style="display:inline-block;padding:25px;background-color:lightgreen;">      <div id="boxIn" style="height: 50px;width: 50px;background-color:pink;">123</div>  </div>  <button id="btn1">内容为123的div元素获取焦点</button>  <button id="btn2">内容为123的div元素失去焦点</button>  <button id="reset">还原</button>  <script>  reset.onclick = function(){history.go();}  //focus()方法  btn1.onclick = function(){      boxIn.tabIndex= -1;      boxIn.focus();  }  //blur()方法  btn2.onclick = function(){      boxIn.blur();  }  //focusin事件  if(boxIn.addEventListener){      boxIn.addEventListener('focusin',handler)      }else{      boxIn.onfocusin = handler;  }  function handler(){      this.style.backgroundColor ='lightblue';  }  if(box.addEventListener){      box.addEventListener('focusin',handler)      }else{      box.onfocusin = handler;  }      //blur事件  function fnBlur(){      this.style.backgroundColor = 'orange';  }  boxIn.onblur = fnBlur;  box.onblur = fnBlur;  </script>  </body>  </html>

由运行结果可知,focusin事件可冒泡;而blur事件不可冒泡

二、焦点事件常用于表单展示及验证

  比如,获取焦点时,修改背景颜色;失去焦点时,还原背景颜色并验证

<!DOCTYPE html>  <html>  	<head>  		<meta charset="UTF-8">  		<title></title>  </head>  <body>  <div id="box">      <input id="input1" type="text" placeholder="只可以输入数字">      <input id="input2" type="text" placeholder="只可以输入汉字">          <span id="tips"></span>  </div>  <script>  if(box.addEventListener){      box.addEventListener('focusin',fnIn);      box.addEventListener('focusout',fnOut);  }else{      box.onfocusin = fnIn;      box.onfocusout = fnOut;  }  function fnIn(e){      e = e || event;      var target = e.target || e.srcElement;      target.style.backgroundColor = 'lightgreen';  }  function fnOut(e){      e = e || event;      var target = e.target || e.srcElement;      target.style.backgroundColor = 'initial';      //如果是验证数字的文本框      if(target === input1){          if(!/^\d*$/.test(target.value.trim())){              target.focus();              tips.innerHTML = '只能输入数字,请重新输入'              setTimeout(function(){                  tips.innerHTML = ''              },500);          }      }      //如果是验证汉字的文本框      if(target === input2){          if(!/^[\u4e00-\u9fa5]*$/.test(target.value.trim())){              target.focus();              tips.innerHTML = '只能输入汉字,请重新输入'              setTimeout(function(){                  tips.innerHTML = ''              },500);          }      }      }  </script>  </body>  </html>

原文链接:https://www.qiquanji.com/post/8356.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: