微信小程序> 微信小程序dom操作的替代思路

微信小程序dom操作的替代思路

浏览量:1593 时间: 来源:yytoo2

微信小程序无法操作dom,这意味着之前js中的各种习惯方法必须换一种思路实现

在尝试了几类情况后,发现部分情况下可以用{{}}变量绑定来实现效果。

比如:

一、实现view的显示和影藏

在js中的data设置变量 bottomHidden1:"block";

然后在wxml中的view中设置<view class="bottom1" style="display:{{bottomHidden1}}" > </view>;

在其它我们需要的地方使用bindtap等绑定事件,js中定义该事件的function,使用this.setData修改bottomHidden1变量为none或者block,实现对上文中的bottom1进行显示/影藏控制


二、实现input中的 placeholder在获取焦点时清空,失去焦点时显示

1. 在js中,data中设置变量 priceHodler:"请输入价格",

2. 我们可以设置两个function控制变量priceHodler的值(此处添加了一种的方法实现输入框中删除图标的显示和消失,所以在data中设置了变量  clearImg)

  displayImg:function(){
    var imgDisplay="block";
    var holderDisplay ="";
    this.setData({
      clearImg: imgDisplay,
      priceHodler: holderDisplay,
    })
  },


  hiddenImg:function(){
    var imgHidden = "none";
    var holderHidden = "请输入价格";
    this.setData({
      clearImg: imgHidden,
      priceHodler: holderHidden,
    })
  },

附:输入框内容删除图标的功能实现(在js的data中也设置了变量 usdValue:null,):

  doClearText:function(){
    this.setData({
      usdValue: null,
    })
  },

3. 在wxml中添加这个input

  <view class="input_view">
                <input type="text" placeholder="{{priceHodler}}" placeholder-class="input-placeholder" class="price_usd" id="price_usd" name="price_usd"  value="{{usdValue}}" bindfocus="displayImg" bindblur="hiddenImg"/>
            </view>
              <label class="clear_view" bindtap="doClearText">
                  <image style="display:{{clearImg}};" class="clear_img" src="../img/search_close.png"></image>
              </label>

这里将js的data中的priceHodler绑定给了placeholder,clearImg绑定在image的display属性上,bindfocus="displayImg" bindblur="hiddenImg"会控制前两个变量的值的变化, bindtap="doClearText"会控制input的value的变化

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎