像button slider等等都有disabled属性,可以方便地在某种条件下禁用;picker-view为什么没有disabled属性呢?需要在一定条件下禁用picker-view时,发现没有办法实现。
更新:
1. 在bindchange处控制不能实现;
2. 使用capture-catch:touchstart="test" 可以拦截touchstart就可以实现disabled=true的效果了,不容易,如下所示:
< picker-view capture-catch:touchstart = "test" id = 'reverbModesPicker' mask-style = "" indicator-style = "height: 30rpx;" style = "width: 300rpx; height: 200rpx;" value = "{{[reverbModesIndex]}}" bindchange = "reverbChange" > < picker-view-column > < view wx:for = "{{reverbModes}}" style = "line-height: 50rpx; font-size: 25rpx; " >{{item.name}}</ view > </ picker-view-column > </ picker-view > |
请教一下,这个
capture-catch:touchstart
=
"test" 怎么动态去掉呢
在事件函数上做手脚是不行的,就算不绑定,picker-view也可以改变值,达不到disabled的效果。
不设bindchange监听函数就行了,只做显示,想要解除禁用,绑定一个点击函数就行了
那样的话,视觉上的差异也需要自己实现的,会复杂一些。
你可以在你的事件函数里面加开关啊,也能达到的一样的效果的。
你的方法可以救急,因为视觉上是没有差别的,用户不能明显的感觉到。当然也可以在对应的代码里实现,但是会比较麻烦,其它组件都有disabled,建议这个也加上disabled属性。