小程序中会用到弹窗. 我在时间选择这快便用到了自定义弹窗,用来显示起始时间和结束时间.小程序
刚开始用的modelui
<modal class="timeModal" confirm-text="肯定" cancel-text="取消" hidden="{{modalHidden}}" bindconfirm="modalChange" bindcancel="modalChange">
<view class="drawer_content">
<view class="weui-cells">
<picker mode="date" start="2017-1-1" end="2018-9-10" value="{{date}}" fields="month" bindchange="bindDateStartChange">
<text space='nbsp'> 开始时间 {{dateStart}}>></text>
</picker>
</view>
<view class="weui-cells">
<picker mode="date" start="2017-1-1" end="2018-9-10" value="{{date}}" fields="month" bindchange="bindDateEndChange">
<text space='nbsp'> 结束时间 {{dateEnd}}>></text>
</picker>
</view>
</view>
</modal>
用事件去控制显示
modalChange(e) {
this.modalHidden= true
},
后来以为这种方式很差看,因而还要用自定义弹窗
<view class="weui-cells timePicker" hidden="{{timeBoxHidden}}" style="height:240rpx;">
<view class="weui-cell" style="">
<picker mode="date" value="{{dateStart}}" end="{{dateEnd}}" bindchange="bindDateStartChange">
<text space='nbsp'> 开始时间 {{dateStart}} > </text>
</picker>
</view>
<view class="weui-cell" style="height:70rpx;">
<picker mode="date" value="{{dateEnd}}" start="{{dateStart}}" end="2018-10-10" bindchange="bindDateEndChange">
<text space='nbsp'> 结束时间 {{dateEnd}} > </text>
</picker>
</view>
<view class="weui-cell" style="">
<button class="weui-btn weui-btn_primary" bindtap="cancelTime">重置</button>
<button class="weui-btn weui-btn_primaryTwo" bindtap="sureTime" >肯定</button>
</view>
</view>
JS中去定义重置和肯定事件
sureTime(e) {
this.timeBoxHidden = true
}
cancelTime () {
this.dateStart ='2018-09-10'
this.dateEnd ='2018-09-12'
},
还能够从时间段中筛选数据(如我上一篇)
可是这个只能是,点击肯定时隐藏弹窗,因产品要求,点击其余地方也要隐藏.
因此须要在大的做用域中去触发点击事件.
而我则是在 scroll-view 中注册.即可以实现点击其余地方也能够隐藏弹窗了.