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实现self的resend
Jul 22 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
推荐JavaScript实现继承的最佳方式
Nov 11 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
Javascript实现倒计时时差效果
May 18 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
vue响应式原理与双向数据的深入解析
Jun 04 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
jQuery实现增删改查
2020/12/22 jQuery
Python 深入理解yield
2008/09/06 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
python妙用之编码的转换详解
2017/04/21 Python
Python实现ping指定IP的示例
2018/06/04 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
python使用minimax算法实现五子棋
2019/07/29 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
会计主管岗位职责
2014/01/03 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
迟到检讨书900字
2014/01/14 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
Redis RDB技术底层原理详解
2021/09/04 Redis