原生微信小程序判断是否点击某个元素以外的元素 控制元素的显示
时间: 2024-11-16 19:19:44 浏览: 6
原生微信小程序源码 - -麻将骰子:附详细教程
5星 · 资源好评率100%
原生微信小程序中,如果你想要控制某个元素的显示状态,当用户点击了该元素以外的地方,你可以通过监听`touchstart`和`touchend`事件结合`page-class`属性来实现。首先,在你的页面组件上设置一个自定义的class名,比如`.not-clicked`,表示元素未被点击的状态。
```html
<view class="container">
<view class="element" bindtap="handleElementClick">点击我</view>
<!-- 其他元素 -->
<view class="other hide-not-clicked"></view>
</view>
<style>
.not-clicked {
display: none;
}
.hide-not-clicked {
display: block;
}
</style>
```
然后,在对应的JS文件中,编写处理点击事件的函数:
```javascript
Page({
data: {},
handleElementClick: function(e) {
// 当元素被点击时,移除.not-clicked
this.setData({
notClickedClass: ''
});
},
globalTouchStart: function(e) {
if (e.target.className.includes('element')) return; // 如果不是元素自身,继续处理
// 添加.not-clicked,隐藏其他元素
this.setData({
notClickedClass: 'not-clicked',
});
},
globalTouchEnd: function() {
// 如果用户停止触摸并且不再是元素,移除.not-clicked
if (!this.data.notClickedClass) return;
this.setData({
notClickedClass: '',
});
}
})
```
在这个例子中,当用户点击元素外部时,`globalTouchStart`会添加`.not-clicked`,使得`.other`元素隐藏;而`globalTouchEnd`会在用户停止点击且不再是元素时恢复到默认显示状态。
阅读全文