chrome下判断点击input上标签还是其余标签的实现方法

想要实现的功能:当input框失焦且点击的不是清除键时,执行reset方法重置input样式,当点击清除键时,执行clear方法,清除input内容。

如图

本想通过如下代码来实现

$(".search-input").focusout(function () {
          if (document.activeElement.className !== 'close-t') {//close-t为清除键类名
            $('.search-input').addClass('search-before');
            $('.close').css('display', 'none');

            document.getElementById('search').value = '';
          }
});

以外的发现,当inpu框失焦后,首先获得焦点的,竟是body标签,也因为这样,该方法失效了,最后采用以下代码来实现的该功能

$("#search").focusout(function () {
  //判断失焦后是否点击的是清除钮,若是则不重置
  var tapCloseButton = false;
  $('.close-t').focus(function () {
    tapCloseButton = true;
  });
  setTimeout(function () {
    if (!tapCloseButton) {
      $('.search-input').addClass('search-before');
      $('.close').css('display', 'none');
      document.getElementById('search').value = '';
    }
  },10);
});

将焦点判断这一步骤延迟执行,故此时焦点已经从body上移到了真正所点击的元素上,此时再对焦点进行判断,看是否为清除键。

以上这篇chrome下判断点击input上标签还是其余标签的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • input标签内容改变的触发事件介绍

    1. onchange事件与onpropertychange事件的区别: onchange事件在内容改变(两次内容有可能相等)且失去焦点时触发:onpropertychange事件是实时触发,每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件是IE专有. 2. oninput事件与onpropertychange事件的区别: oninput事件是IE之外的大多数浏览器支持的事件,在value改变时实时触发,但是通过js改变value时不会触发:onpropertychange事

  • 使用js正则控制input标签只允许输入的值

    style="ime-mode:Disabled" 这句是比较实用的.意为关闭输入法.省得有些人开着全角输入数字,结果输入不进去来找你哭天抹泪的,还怪你设计的不好. 只允许输入数字 复制代码 代码如下: <input name="username" type="text" onkeyup="value=this.value.replace(//D+/g,'')"> 只允许输入英文字母.数字和下划线(以下二种方法实现

  • html中的input标签的checked属性jquery判断代码

    虽然会有这样的错误,但是如果再仔细测试一下,会发现input标type属性设为button时,还是具有checked属性的,而且默认为false 代码如下所示: 复制代码 代码如下: <script type="text/javascript" src="http://www.jb51.net/jslib/jquery/jquery.js"></script> <script type="text/javascript&quo

  • chrome下判断点击input上标签还是其余标签的实现方法

    想要实现的功能:当input框失焦且点击的不是清除键时,执行reset方法重置input样式,当点击清除键时,执行clear方法,清除input内容. 如图 本想通过如下代码来实现 $(".search-input").focusout(function () { if (document.activeElement.className !== 'close-t') {//close-t为清除键类名 $('.search-input').addClass('search-before'

  • Android实现点击AlertDialog上按钮时不关闭对话框的方法

    本文实例讲述了Android实现点击AlertDialog上按钮时不关闭对话框的方法.分享给大家供大家参考.具体如下: 开发过程中,有时候会有这样的需求: 点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有"确认"和"取消"两个按钮.当用户点击确认按钮时,需要对输入框的内容进行判断.如果内容为空则不关闭对话框,并toast提示. 使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和build

  • windows下在一台机器上安装两个MYSQL数据库的方法

    环境: OS:Windows 2003 DB:MYSQL5.5 1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy到E盘 4.创建第二个mysql的my.ini文件 第一个mysql的my.ini文件默认是在如下路径 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL S

  • webuploader在springMVC+jquery+Java开发环境下的大文件分片上传的实例代码

    注意: 1,webuploader上传组件会和jQuery自带的上传组件冲突,所以不要使用<form>标签中添加上传文件的属性; enctype="multipart/form-data" 2.并且屏蔽ApplicationContext-mvc.xml里面的拦截配置! <!-- 上传拦截,如最大上传值及最小上传值 --> <!--新增加的webuploader上传组件,必须要屏蔽这里的拦截机制 <bean id="multipartRes

  • vue实现移动端input上传视频、音频

    vue移动端input上传视频.音频,供大家参考,具体内容如下 html部分 <div class="title">现场视频</div> <div class="upLoad"> <label for="pop_video" id="labelr"> <video id="videoId" controls width="100%"&

  • BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)

    布局组件 下拉按钮 <div class="dropdown"> <button class="btn dropdown-toggle" id='drop1' data-toggle="dropdown"> 帮助<span class="caret"></span> </button> <ul class="dropdown-menu" ro

  • jQuery点击头像上传并预览图片

    先给大家展示下效果图: HTML代码 <div class="img_show img_show1"> <img src="img2/img06.jpg" width="103" height="103" alt=""> <input type="file" class="upfile" accept="*/*">

  • jQuery实现点击下拉框中的值累加到文本框中的方法示例

    本文实例讲述了jQuery实现点击下拉框中的值累加到文本框中的方法.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale

  • JavaScript 点击页面上的按纽,弹出层,背景变灰

    点击页面上的按纽,弹出一个层,背景变灰 点击页面上的按纽,弹出一个层,背景变灰 function sAlert(str) { var msgw,msgh,bordercolor; msgw=400;//提示窗口的宽度 msgh=100;//提示窗口的高度 titleheight=25 //提示窗口标题高度 bordercolor= "#336699 ";//提示窗口的边框颜色 titlecolor= "#99CCFF ";//提示窗口的标题颜色 var sWidth

  • jquery在Chrome下获取图片的长宽问题解决

    遇到个需要获得图片的长宽的问题.在IE.FireFox下均正常,就TMD在Chrome中不行,网上非有人说可以,然后还归结为是不是Chrome版本问题. 终于的终于,找到了答案. 在大多数情况下,把js代码放到图片标签的后面: 复制代码 代码如下: <img id="test" src="**.jpg" /> <script> alert(document.getElementById("test").width;<

随机推荐