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 延迟加载技术(lazyload)简单实现
Jan 17 Javascript
使用jQuery判断IE浏览器版本的代码
Jun 14 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
Aug 14 Javascript
js传递数组参数到后台controller的方法
Mar 29 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 Javascript
js实现简单进度条效果
Mar 25 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
详解php中反射的应用
2016/03/15 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
应届生污水处理求职信
2013/11/06 职场文书
应届生自我鉴定
2013/12/11 职场文书
大型会议接待方案
2014/03/01 职场文书
园艺师求职信
2014/03/10 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Python anaconda安装库命令详解
2021/10/16 Python