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下的动画处理总结
Oct 10 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
移动端 一个简单易懂的弹出框
Jul 06 Javascript
BootStrop前端框架入门教程详解
Dec 25 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
JavaScript实现修改伪类样式
Nov 27 Javascript
vue-cli3 配置开发与测试环境详解
May 17 Javascript
vue实现计步器功能
Nov 01 Javascript
JS实现滑动导航效果
Jan 14 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
JavaScript对象原型链原理详解
Feb 05 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 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
PHP文件上传实例详解!!!
2007/01/02 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
vue中activated的用法
2021/01/03 Vue.js
vue实现轮播图帧率播放
2021/01/26 Vue.js
关于反爬虫的一些简单总结
2017/12/13 Python
python实现textrank关键词提取
2018/06/22 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python实现多进程通信实例分析
2019/09/01 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
党校培训自我鉴定范文
2014/03/20 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
如何写辞职信
2015/05/13 职场文书
篮球赛新闻稿
2015/07/17 职场文书