• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序点击控制元素的显示与隐藏

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微信小程序点击控制元素的显示与隐藏

首先我们先来看一下单个点击效果

我们来看一下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变量进行判断。(这个思路是从网上看到的,记录一下,有什么描述不当,欢迎指出)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap