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 相关文章推荐
jQuery ready函数滥用分析
Feb 16 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
更优雅的微信小程序骨架屏实现详解
Aug 07 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
vue+echarts实现多条折线图
Mar 21 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
PHP4实际应用经验篇(5)
2006/10/09 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
python选择排序算法实例总结
2015/07/01 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
Python多分支if语句的使用
2020/09/03 Python
园林施工员岗位职责
2013/12/11 职场文书
消防安全承诺书
2014/05/22 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
考试没考好检讨书
2015/05/06 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
灵魂歌王观后感
2015/06/17 职场文书
退休教师追悼词
2015/06/23 职场文书
保护环境的宣传语
2015/07/13 职场文书
python实现监听键盘
2021/04/26 Python
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
tensorflow中的数据类型dtype用法说明
2021/05/26 Python