zoukankan      html  css  js  c++  java
  • 微信小程序添加、删除class’

    终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题。

    今天第一天开发就遇到问题了。

    项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作dom啊;

    折腾一个多小时最终找到两种方法,分享给大家;

    第一种比较直接但是,不适合多个操作;

    1,第一种感觉比较傻

        

    <view class="{{num==0 ? 'active':''}}" bindtap="click1">1</view>
    <view    class="class{{num==1?'active':''}}"bindtap="click2">2</view>
    <view class=class="{{num==2 ? 'active':''}}" bindtap="click3">3</view>
      

    需要用到三目运算符,同时有多少个导航就要加多少事件。

     click1:function(){
             this.setData({
                num:1,
               num1:0,
               num2:0
            })
        },
        click2:function(){
            
            this.setData({
                num1:1,
                 num:0,
               num2:0
            })
        },
         click3:function(){
            this.setData({
                num2:1,
                 num1:0,
               num:0
            })

    2,这种优化后感觉就不错了

     <view data-num = "1" class='trsZhi {{_num==1?"trsActive":""}}' bindtap="tapHan">地址翻译</view>
      <view data-num = "2" class='trsZhi {{_num==2?"trsActive":""}}' bindtap="tapHan" >机构翻译</view>
      <view data-num = "3" class='trsZhi {{_num==3?"trsActive":""}}' bindtap="tapHan">人名翻译</view>

    加一个data属性,只需要一个事件操作。

     tapHan:function(e){
        console.log(e.target.dataset.num)
        this.setData({_num: e.target.dataset.num}) 
    }

    代码简洁多了,同时也可以选择默认第一个为active,只需要在data里面声明就行了

    data: {
    _num:"1"
    },

  • 相关阅读:
    Struts1防止重复提交
    Jquery真的不难
    原生Ajax 和Jq Ajax
    JAVA调用Oracle存储过程
    Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
    回到基础:封装集合
    如何摆脱工具类
    泛型的古怪与优雅
    Spring MVC + Hibernate + Maven: Crud操作示例
    JDBC性能小贴
  • 原文地址:https://www.cnblogs.com/wyfeng1/p/7367328.html
Copyright © 2011-2022 走看看