首頁  >  文章  >  微信小程式  >  詳解微信小程式元件:label標籤

詳解微信小程式元件:label標籤

高洛峰
高洛峰原創
2017-03-27 11:32:271847瀏覽

label標籤元件說明:

label標籤,和html的label極為類似。 label 元素不會呈現任何特殊效果給使用者。不過,它為滑鼠使用者改進了可用性。如果您在 label 元素內點擊文本,就會觸發此控制項。是說,當使用者選擇該標籤時,就會自動將焦點轉到和標籤綁定的表單控制項上,主要用來改善表單元件的可用性。
使用for屬性找到對應的id,或將控制項放在該標籤下,當點擊時,就會觸發對應的控制項。
for優先權高於內部控件,內部有多個控件的時候預設觸發第一個控件。
目前可以綁定的控制項有:de935b9c153fbe5d6ad7df96bd65d7b8, a2f269297782d34318beedfba321faa2, dd7cdcbe81dd3b31defaf1177bb27d90, 698d939a2c9041f2302734cfeb04788e


##label標籤元件#範例程式碼運行效果如下:

详解微信小程序组件:label标签

以下是WXML程式碼:

[/p][color=rgb(51, 51, 51)][font=&quot;][size=13px]<view class="content">
  <text class="section__title">-------label绑定checkbox(内嵌)-------</text>
  <checkbox-group bindchange="checkboxChange">
    <view class="label-1" wx:for="{{checkboxItems}}">
      <label>
        <checkbox hidden value="{{item.name}}" checked="{{item.checked}}"></checkbox>
        <view class="label-1__icon">
          <view class="label-1__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>
        </view>
        <text class="label-1__text">{{item.value}}</text>
      </label>
    </view>
  </checkbox-group>
</view>
<view class="content">
  <text class="section__title">---------label绑定radio(for)---------</text>
  <radio-group class="group" bindchange="radioChange">
    <view class="label-2" wx:for="{{radioItems}}">
      <radio id="{{item.name}}" hidden value="{{item.name}}" checked="{{item.checked}}"></radio>
      <view class="label-2__icon">
        <view class="label-2__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>
      </view>
      <label class="label-2__text" for="{{item.name}}"><text>{{item.name}}</text></label>
    </view>
  </radio-group>
</view>
<view class="content">
  <text class="section__title">-----------label绑定button-----------</text>
  <label for="buttontest">label绑定button(for)</label>
  <button id="buttontest" bindtap="testLabelBindButton_1">Fly-1</button>
  <label>
    <text>label绑定button(内嵌)</text>
    <button bindtap="testLabelBindButton_2">Fly-2</button>
  </label>
</view>
<view class="content">
  <text class="section__title">-----------label绑定switch-----------</text>
  <view>
    <label for="switchtest">label绑定switch( for)</label>
    <switch id="switchtest" checked/>
  </view>
  <view>
    <label>
      <text>label绑定switch(内嵌)</text>
      <switch/>
    </label>
  </view>
    <view>
    <label>
      <text>label绑定switch(内嵌)</text>
      <switch/>
      <switch/>
      <switch/>
    </label>
  </view>
</view>

#下面是JS程式碼:

Page({
  data: {
    checkboxItems: [
      {name: &#39;ctrip&#39;, value: &#39;携程&#39;, checked: &#39;true&#39;},
      {name: &#39;qunar&#39;, value: &#39;去哪儿&#39;},
      {name: &#39;tuniu&#39;, value: &#39;途牛&#39;}
    ],
    radioItems: [
      {name: &#39;ctrip&#39;, value: &#39;携程&#39;},
      {name: &#39;qunar&#39;, value: &#39;去哪儿&#39;, checked: &#39;true&#39;},
      {name: &#39;tuniu&#39;, value: &#39;途牛&#39;}
    ],
    hidden: false
  },
  checkboxChange: function(e) {
    var checked = e.detail.value
    var changed = {}
    for (var i = 0; i < this.data.checkboxItems.length; i ++) {
      if (checked.indexOf(this.data.checkboxItems.name) !== -1) {
        changed[&#39;checkboxItems[&#39;+i+&#39;].checked&#39;] = true
      } else {
        changed[&#39;checkboxItems[&#39;+i+&#39;].checked&#39;] = false
      }
    }
    this.setData(changed)
  },
  radioChange: function(e) {
    var checked = e.detail.value
    var changed = {}
    for (var i = 0; i < this.data.radioItems.length; i ++) {
      if (checked.indexOf(this.data.radioItems.name) !== -1) {
        changed[&#39;radioItems[&#39;+i+&#39;].checked&#39;] = true
      } else {
        changed[&#39;radioItems[&#39;+i+&#39;].checked&#39;] = false
      }
    }
    this.setData(changed)
  },
  testLabelBindButton_1:function(){
    console.log("奔走相告,button通过for可以绑定成功啦!!!");
  },
  testLabelBindButton_2:function(){
    console.log("奔走相告,button通过内嵌可以绑定成功啦!!!");
  }
})


下面是WXSS程式碼:

.label-1, .label-2{
    margin-bottom: 15px;
}
.label-1__text, .label-2__text {
    display: inline-block;
    vertical-align: middle;
}
.label-1__icon {
    position: relative;
    margin-right: 10px;
    display: inline-block;
    vertical-align: middle;
    width: 18px;
    height: 18px;
    background: #CAE1FF;
}
.label-1__icon-checked {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 12px;
    height: 12px;
    background: #1aad19;
}
.label-2__icon {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
    width: 18px;
    height: 18px;
    background: #CAFF70;
    border-radius: 50px;
}
.label-2__icon-checked {
    position: absolute;
    left: 3px;
    top: 3px;
    width: 12px;
    height: 12px;
    background: #1aad19;
    border-radius: 50%;
}
.section__title{
  display: block;
  text-align: center;
  color: #9400D3;
}
.content{
  padding-bottom: 15px;
}



主要屬性:

屬性

#類型

######### ##for######String######綁定控制項的id(該id和需要被綁定的表單控制項的id一模一樣才生效)############

以上是詳解微信小程式元件:label標籤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn