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 相关文章推荐
javascript开发中因空格引发的错误
Nov 08 Javascript
工作中常用到的JS表单验证代码(包括例子)
Nov 11 Javascript
避免回车键导致的页面无意义刷新的解决方法
Apr 12 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
Sep 20 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
jquery获取tagName再进行判断
May 29 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
layui实现鼠标移动到单元格上显示数据的方法
Sep 11 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
zend framework重定向方法小结
2016/05/28 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
python 字典中取值的两种方法小结
2018/08/02 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
药品营销策划方案
2014/06/15 职场文书
活动总结新闻稿
2014/08/30 职场文书