js仿QQ邮箱收件人选择与搜索功能


Posted in Javascript onFebruary 10, 2017

之前因为项目开发需要,对于收件人选择与搜索的js实现,整理如下:

页面截图:

js仿QQ邮箱收件人选择与搜索功能

主要html代码:

<#--左侧-->
<div>
 <label>To:</label>
 <div id="divtxt" class="mailtxt_div"></div>
 <input type="hidden" name="messName" id="messName"/>
 <input type="hidden" name="messId" id="messId"/>
</div>
<div>
 <label>Subject:</label>
 <input type="text" name="messTitle" id="messTitle"/>
</div>
<div>
 <label>Message:</label>
 <textarea name="ddContent" id="ddContent"></textarea>
</div>
<#--右侧-->
<div>
 <input calss="search_mail" type="text" value="Search Contact..." onclick="if(this.value==
'Search Contact...')this.value='';" onblur="if(this.value=='')this.value='Search Contact...';" 
name="txtsearch" />
 <div><img src="/images/email03.png" /></div>
</div>
<div class="mailclist">
 <ul>
  <li>
   <div class="firstmail" title="Cata food, S.L." alt="aa@qq.com" 
    ass="Cata food, S.L.">Cata food, S.L.</div>
  </li>
  <li>
   <div class="firstmail" title="Anqing Beverage" alt="bb@qq.com" 
    ass="Anqing Beverage">Anqing Beverage</div>
  </li>
  <li>
   <div class="firstmail" title="123456ew" alt="cc@qq.com" 
    ass="123456ew">123456ew</div>
  </li>
 </ul>
</div>

主要js实现代码:

<script type="text/javascript">
$(function(){  
 //点击收件人列表到收件人
  $(".firstmail").bind("click",function(){
   var $mailTo=$(this).attr("ass");//收件人名称
   var $mailToId=$(this).attr("alt");//收件人Id
   var $divtxt_val=$("#divtxt").text();//收件人框中的值
   var $messId=$("#messId").val();//隐藏的收件人Id
   if($divtxt_val.indexOf($mailTo)<0){//若不存在,则拼接
    $("#divtxt").append("<span class='rece' alt='"+$mailToId+";'>"
    +$mailTo+";"+"</span>");
    $messId=$messId+$mailToId+";";
   }
   $("#messId").val($messId);
   $("#messName").val($("#divtxt").text());//隐藏的收件人名称
  });
  
  //点击某个收件人,添加样式
   $(".rece").live("click",function(){
    $("#divtxt").find(".rece").removeClass("on");
    $("#divtxt").find(".rece").css("background-color","").css("color","")
    $(this).addClass("on").css("background-color", "#545f59").css("color","#fff");
   });
  
  //点击删除键跟退格键,删除对应的收件人
  $(document).bind('keydown',
  function(event) {
    var $messId=$("#messId").val();//收件人Id的值
    var $span_alt=$("#divtxt .on").attr("alt");//选中的收件人
    if($span_alt != null){
    var $index,$span_size,$mess_size,$val;
    $index=$messId.indexOf($span_alt);
    $span_size=$span_alt.length;
    $mess_size=$messId.length;
    //删除对应的收件人Id
    $val=$messId.substring(0,$index)
     +$messId.substring($index+$span_size,$mess_size);
    $("#messId").val($val);
    if(46==event.keyCode ){ //Delete键    
     $("#divtxt .on").remove();
     $("#messName").val($("#divtxt").text());    
    }else if(8==event.keyCode){//退格键
     $("#divtxt .on").remove();
     $("#messName").val($("#divtxt").text());
     return false;
    }
   }  
  }
 );
 
 //搜索框搜索事件
 $(".search_mail").bind("blur",function(){
   var content = $(this).val();
   if("Search Contact..." != content && content !=""){
    $(".mailclist li div").each(function(){
     var name = $(this).text();
     if(name.indexOf(content) == -1){
      $(this).hide();
     }else{
      $(this).show();
     }
    });
   } else {
    $(".mailclist li div").show();
   }
  });
});
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 Javascript
js跳转页面方法实现汇总
Feb 11 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
Feb 03 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
AngularJS入门教程之Select(选择框)详解
Jul 27 Javascript
Vue进度条progressbar组件功能
Apr 17 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
深入理解react 组件类型及使用场景
Mar 07 Javascript
浅谈vue.watch的触发条件是什么
Nov 07 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
BootStrapValidator初使用教程详解
Feb 10 #Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
Feb 10 #Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 #Javascript
JS实现的数字格式化功能示例
Feb 10 #Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
Feb 10 #Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 #Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 #Javascript
You might like
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
python实现的简单抽奖系统实例
2015/05/22 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
初一生物教学反思
2014/01/18 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
推荐信模板
2014/05/09 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
python Tkinter模块使用方法详解
2022/04/07 Python
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技