微信小程序点击控制元素的显示与隐藏
微信小程序点击控制元素的显示与隐藏
首先我们先来看一下单个点击效果


我们来看一下wxml中的代码:
<view class="conten">
<view class="header">
<view class="nav_i">
<text class="nav_tex">更多内容</text>
</view>
<view class="nav_righ" bindtap="mmmm">更多></view>
</view>
<view class="body">
<view class="data" bindtap="share">
<view class="icon">
<image style="width:19px;height:19px;text-align:conten" wx:if="{{shows}}" src="/src/icon/minus.png"></image>
<image style="width:19px;height:19px;text-align:conten" wx:else src="/src/icon/plus.png"></image>
</view>
<view class="body_txt">
<text>2017-07-27</text>
</view>
</view>
<view class="share" wx:if="{{shows}}">
<input placeholder="这是一个可以自动聚焦的input" auto-focus/>
</view>
</view>
</view>
下面的是js中的主要代码:
data: {
shows: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
share: function () {
var that = this;
var sh = that.data.shows;
that.setData({
shows: !sh
})
},
要知道我们控制的元素有两个,一个是图片一个是input框,我们在页面中使用bindtap="share"进行绑定事件,同时在图片image和input标签使用shows变量来控制显示与隐藏
当我加上循环出现多个元素的时候,意料之中,会变成这个亚子(›´ω`‹ )

这里我们要判断一下,点击到标签的状态要不同于其它的,改动后的代码如下:
<view class="conten">
<view class="header">
<view class="nav_i">
<text class="nav_tex">更多内容</text>
</view>
<view class="nav_righ" bindtap="mmmm">更多></view>
</view>
<block wx:for-items="{{itemm}}">
<view class="body">
<view class="data" bindtap="share" id="{{item.id}}">
<view class="icon">
<image style="width:19px;height:19px;text-align:conten" wx:if="{{shows==item.id}}" src="/src/icon/minus.png"></image>
<image style="width:19px;height:19px;text-align:conten" wx:else src="/src/icon/plus.png"></image>
</view>
<view class="body_txt">
<text>2017-07-27</text>
</view>
</view>
<view class='share {{shows==item.id?"show":"hidden"}}'>
<input placeholder="这是一个可以自动聚焦的input" auto-focus/>
</view>
</view>
</block>
</view>
data: {
shows: false,
itemm: [{
id: 1,
name: "1111"
}, {
id: 2,
name: "222"
}, {
id: 3,
name: "333"
}]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
share: function (event) {
var that = this;
var sh = that.data.shows;
var itemId = event.currentTarget.id;
console.log(itemId)
if (sh == itemId) {
that.setData({
shows: false
})
} else {
that.setData({
shows: itemId
})
}
},
首先我们在js中的data里面放一些数据,在block中用 wx:for-items循环一下(然并卵我的input并没有数据,这个先放一下),给每个循环出来的元素加个id,接下来的input用三元运算符来判断,不要忘记在css加上hidden:{displan:none},我们在js方法中用id和shows变量进行判断。(这个思路是从网上看到的,记录一下,有什么描述不当,欢迎指出)

微信小程序点击控制元素的显示与隐藏的更多相关文章
- 仅使用css实现点击 控制元素的显示与隐藏!
视频教程:https://www.bilibili.com/video/BV1uE411Q7tx?p=15&spm_id_from=pageDriver 大致方法:在被点击的元素后面 放一个c ...
- 微信小程序点击图片放大预览
微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...
- legend3---19、要更多的从服务器端控制元素的显示和隐藏,而不要是页面端
legend3---19.要更多的从服务器端控制元素的显示和隐藏,而不要是页面端 一.总结 一句话总结: 这样可以控制很多页面端的非法操作 1.html标签中data方式的数据,修改之后在标签上只显示 ...
- css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么)
css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么) 一.总结 一句话总结:使用的时候直接在元素的样式中设置display和visibility属性即可.推荐使 ...
- 微信小程序 —— 动态决定页面元素显示或隐藏的技巧
在微信小程序开发中,经常遇到一些由后台控制显示(is_open : 1)或者隐藏(is_open : 0),有俩种办法: 复杂办法 1.先在元素的class中 class=’{{show?’true’ ...
- 微信小程序之动态获取元素宽高
我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ...
- 微信小程序点击保存图片到本地相册——踩坑
在微信小程序中要保存图片到本地相册,需要获取相册权限. 总之整个功能实现下来需要如下几个小程序的API:wx.getSetting,wx.authorize,wx.openSetting,wx.dow ...
- 微信小程序点击返回顶层实现方法
最近在研究微信小程序,被这个返回顶层给坑了一波,下面贴代码 wxml代码: <scroll-view scroll-y style="height: 1000rpx;" sc ...
- 解决Mac版微信小程序开发工具打开后无法显示二维码
问题描述: 正常情况下,打开微信小程序开发工具后,首页提示扫描二维码进行登陆,但是如果不显示二维码,当然无法登陆. 解决方案: 无法显示二维码肯定是程序运行哪里出错了,我们直接点击桌面图标是无法排查错 ...
随机推荐
- Web 字体 font-family 再探秘
之前写过一篇关于Web字体简介及使用技巧的文章: 你该知道的字体 font-family. 该篇文章基本没有太多移动端的字体选择及分析.并且过了这么久,如今的 Web 字体又有了一些新的东西,遂有此文 ...
- Netty基础系列(5) --零拷贝彻底分析
前言 上一节(堆外内存与零拷贝)当中我们从jvm堆内存的视角解释了一波零拷贝原理,但是仅仅这样还是不够的. 为了彻底搞懂零拷贝,我们趁热打铁,接着上一节来继续讲解零拷贝的底层原理. 感受一下NIO的速 ...
- SpringBoot进阶教程(六十)intellij idea project下建多个module搭建架构(上)
在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念.多module有一个父maven工程,多个子工程 ...
- MUI-页面传参数
点击第一个页面的标签,跳转到第二个页面,把第一个页面的值也传往目标页面 现在提供两种实现方式 注意:需要在手机运行才可以,用电脑浏览器可能不支持. 第一种方式 页面已创建,通过自定义事件传值 fir ...
- lombok 下的@Builder注解用法
pom依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId& ...
- babel-loader与babel-core的版本对应关系
babel-loader 8.x对应babel-core 7.xbabel-loader 7.x对应babel-core 6.x如何解决1. 卸载旧的babel-corenpm un babel-co ...
- npm init,npm -y, npm install --save,npm install --save-dev
npm init 初始化一个简单的package.json文件,执行该命令后终端会依次询问 name, version, description 等字段 npm init --yes|-y 作用同上, ...
- 持续集成高级篇之Jenkins cli与Jenkins ssh
系列目录 Jenkins Cli介绍 Jenkins Cli为Jenkins提供的一个cli工具,此工具功能非常强大,可以完成诸如重启jenkins,创建/删除job,查看job控制台输出,添加/删除 ...
- 迁移桌面程序到MS Store(10)——在Windows S Mode运行
首先简单介绍Windows 10 S Mode,Windows在该模式下,只能跑MS Store里的软件,不能通过其他方式安装.好处是安全有保障,杜绝一切国产流氓软件.就像iOS一样,APP进商店都需 ...
- Angular Material 的设计之美
前言 Angular Material 作为 Angular 的官方组件库,无论是设计交互还是易用性都有着极高的质量.正如官方所说其目的就是构建基于 Angular 和 Typescript 的高质量 ...