全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js仿微信公众平台打标签功能

今天刚刚完成了一个小功能:“仿微信公众平台的-打标签”,随笔记下欢迎纠错:

操作介绍:选择人物列表点击“打标签”按钮可实现对当前已选择的人物添加新的标签;

自己分析的实现思路

1.点击“打标签”时要“知道”那些人物被选择了~~遍历当前人物列表          

2.得到被选择人物列表后还得知道他们下面的标签都有啥~~遍历选择人物的标签列表         

3.得到当前可以使用的标签列表~~额..还是遍历得到

废话讲的有点多。来几张图片压压惊。网页效果\(^o^)/~

1.加载完毕的初期“打标签”不可选没有功能。。

2.当任务列表有选择的时候可以点击“打标签”并弹窗显示可编辑的标签列表(列表内容取自右侧);

3.选择标签后确定修改当前已选择的人物的标签;

概流程就这样了,代码

基本也页面结构:

html和css大家都会的就不写啦。。。下面是主要js代码:

function addLabel (){
 
 $('.addLabel_divS_ul_s').find('li').remove();
 $('#addLable_btn').css({'cursor':'pointer',"background":'#fff'});
 
 $('#addLable_btn').on('click',function(){
  // 向隐藏ul(即弹窗里的ul)中添加li 
  var $lis    = $('.ulLabelS>.lable_list_li_append_li>.lable_list_li_strong_2'),
   $addLabelDivSUlS = $('.addLabel_divS_ul_s'),
   $inputAll   = $('#queryPageForm input[type="checkbox"]'),
   $inputLength  = $inputAll.length;//人物列表
  
  //循环已有的li列表放进备选ul中
  for(let i=0 ; i<$lis.length; i++){
   var $li    = "<li class='addLabel_divS_ul_sLi' ><input type='checkbox'/>" + $($lis[i]).text() + "</li>";
        //防止多次执行函数导致的多次添加
   if($addLabelDivSUlS.find('li').length != $lis.length){
    //console.log('zhixing ');
    $addLabelDivSUlS.append($li);
   };
  }
  
  //循环已勾选的人物列表读取已有的标签反显到备选ul的li中(li里面的input勾选)
  for(let i=0; i< $inputLength; i++){
   
   //判断当前人员列表是否被勾选 勾选的添加标签
   if($($inputAll[i]).prop('checked')){
    //$length : 人物固有标签的长度
    var $thisLi  = $($inputAll[i]).parent('.user_list_li_div_1').siblings('.user_list_li_div_2').find('.div2_lable_ul>li');
     $length  = $thisLi.length;//备选标签ul
    
    for(let j = 0; j < $length ; j ++ ){
     //console.log($($thisLi[j]).text());
     for(let k = 0; k < $addLabelDivSUlS.find('li').length ; k++){
      
      if($($thisLi[j]).text() == $($addLabelDivSUlS.find('li')[k]).text()){
       
       $($addLabelDivSUlS.find('li')[k]).find('input').prop('checked',true)
      }
     }
    }
   }
  };
  
  $('#addLabel_divS_wrp').show();
  $('#addLabel_divS').show();
 });
}


上面是获取备选标签和“找到”选中的人物中的标签列表并在备选标签中进行勾选,当弹窗后我们还得知道当前人物列表哪个是选中的,我们在把选中的备选标签添加到当前选中的人物上,就实现修改标签的功能了。。。。。看下面。。。。

/*
 * 取消 确定
 */
function clickBtnS (){
 var $addLabelDivS = $('#addLabel_divS'),
  inputAll  = $('#queryPageForm input[type="checkbox"]');
  
  
 //确定
 $('.addLabel_divS_div1>.btn1').on('click',function(){
  
 var $length   = $('.addLabel_divS_ul_s>.addLabel_divS_ul_sLi');//备选标签ul
 
  //找到勾选的li 添加当前勾选的标签 人物列表
  for(let i=0; i< inputAll.length; i++){
   
   //判断当前人员列表是否被勾选 勾选的添加标签
   if($(inputAll[i]).prop('checked')){
    $(inputAll[i]).parent('.user_list_li_div_1').siblings('.user_list_li_div_2').find('.div2_lable_ul').empty();
    //循环已选择的li 
    for(let j = 0; j<$length.length;j ++){
     if($($length[j]).find('input').prop('checked')){
      //console.log($($length[j]).text());
      var $li = "<li class='div2_lable_li'>"+ $($length[j]).text() +"</li>";
      
      $(inputAll[i]).parent('.user_list_li_div_1').siblings('.user_list_li_div_2').find('.div2_lable_ul').append($li);
     }
    }
   }
  };
  
  $('.addLabel_divS_ul_s').find('li').remove();
  $('#addLabel_divS_wrp').hide();
  $addLabelDivS.hide();
 });
 
 //取消
 $('.addLabel_divS_div1>.btn2').on('click',function(){
  $('.addLabel_divS_ul_s').find('li').remove();
  $('#addLabel_divS_wrp').hide();
  $addLabelDivS.hide();
 });
};

至此就可以实现和微信的打标签相同的效果了。。也没看微信的源码不知道人家这么写的。。自知这个实现思路for循环有点多性能肯定不好(先实现功能在优化嘛。。嘿嘿)。。求指教哦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 微信  # 打标签  # 微信小程序 基础知识css样式media标签  # JS中静态页面实现微信分享功能  # JS 调用微信扫一扫功能  # JS实现微信弹出搜索框 多条件查询功能  # JavaScript微信定位功能实现方法  # 勾选  # 遍历  # 还得  # 都有  # 也没  # 并在  # 可以使用  # 可选  # 几张  # 时要  # 大家多多  # 就可以  # 不写  # 话讲  # 选择了  # 完成了  # 加载  # pre  # brush 


相关文章: 动图在线制作网站有哪些,滑动动图图集怎么做?  建站之星×万网:智能建站系统+自助建站平台一键生成  如何有效防御Web建站篡改攻击?  重庆市网站制作公司,重庆招聘网站哪个好?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  电商网站制作公司有哪些,1688网是什么意思?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何在橙子建站中快速调整背景颜色?  婚礼视频制作网站,学习*后期制作的网站有哪些?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在万网自助建站平台快速创建网站?  制作营销网站公司,淘特是干什么用的?  Swift中循环语句中的转移语句 break 和 continue  如何快速搭建高效简练网站?  如何在阿里云完成域名注册与建站?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何在云服务器上快速搭建个人网站?  ,怎么用自己头像做动态表情包?  javascript基本数据类型及类型检测常用方法小结  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  建站之星多图banner生成与模板自定义指南  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  临沂网站制作公司有哪些,临沂第四中学官网?  如何在景安云服务器上绑定域名并配置虚拟主机?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何在IIS7中新建站点?详细步骤解析  jQuery 常见小例汇总  外贸公司网站制作哪家好,maersk船公司官网?  微课制作网站有哪些,微课网怎么进?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  网站制作软件有哪些,制图软件有哪些?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何在IIS中配置站点IP、端口及主机头?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何选择域名并搭建高效网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  全景视频制作网站有哪些,全景图怎么做成网页?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  建站主机选购指南与交易推荐:核心配置解析  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何获取上海专业网站定制建站电话? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。