微信小程序添加、删除class’
2024-08-25 06:25:40
终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题。
今天第一天开发就遇到问题了。
项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作dom啊;
折腾一个多小时最终找到两种方法,分享给大家;
第一种比较直接但是,不适合多个操作;
1,第一种感觉比较傻
<view class="{{num==0 ? 'active':''}}" bindtap="click1"></view>
<view class="class{{num==1?'active':''}}"bindtap="click2"></view>
<view class=class="{{num==2 ? 'active':''}}" bindtap="click3"></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"
},
最新文章
- linux install matlab2014a
- iOS中浅淡UIApplication单例-b
- linux 内核开发基础
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
- Error400
- IntelliJ的Scala配置
- php 抛出异常信息try catch
- System.arraycopy和arrays.copyOf
- [LeetCode&;Python] Problem 492. Construct the Rectangle
- CRC8校验
- Python列表生成式和生成器
- WordPaster-UEditor1.x整合教程
- man命令使用
- 大并发下TCP内存消耗优化小记(86万并发业务正常服务)
- s11 day103 luffy项目结算部分+认证+django-redis
- Vue 事件处理
- putty的复制和粘贴
- org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML.
- redis常用数据类型与命令
- 《大巧不工 web前端设计修炼之道》学习笔记
热门文章
- 11.page,pagcontext,config对象
- php下redis的安装教程
- [翻译]成为顶尖程序员应当学什么?Python、C还是Ruby?
- 统计学习方法 三 kNN
- 【summary】JQuery 相关css、ajax、数据操作函数或方法
- winform利用委托delegate进行窗体间通信,相同标题已经存在??
- CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)
- javascript精度问题与调整
- document.querySelectorAll() 与document.getElementTagName() 的区别
- DotNetCore跨平台~服务总线_事件总线的重新设计