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 iframe跨域访问(同主域/非同主域)分别深入介绍
Jan 24 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
jQuery 中DOM 操作详解
Jan 13 Javascript
为什么JS中eval处理JSON数据要加括号
Apr 13 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
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
ThinkPHP安装和设置
2015/07/27 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
微信小程序实现红包雨功能
2018/07/11 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
Python引用计数操作示例
2018/08/23 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
在python中修改.properties文件的操作
2020/04/08 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
小学生读书感言
2014/02/12 职场文书
集中整治工作方案
2014/05/01 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
公司经营目标责任书
2015/01/29 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
终止合同协议书范本
2016/03/22 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书