小程序弹层点击其他位置 隐藏 点击相应位置发生点击事件

在这里插入图片描述
上面的选择列表弹出后出现弹框,点击列表的按钮以外区域隐藏弹框遮罩层。

<view bindtap="hideIcon">
<view class="navList {{navList==true?'navListActive':''}}">
    <view class="nav  {{navList==true?'navNew':''}}" hover-stop-propagation="true">
      <view class="navView  {{navList==true?'navViewNew':''}}"
       wx:for="{{nav}}"
       wx:for-item="item" 
       wx:key="{{index}}" 
       wx:for-index="index" 
       data-attr="{{item.attr}}" 
       data-name="{{item.name}}"
       data-id="{{item.placesortid}}"
       catchtap="tabIcon"
       hover-stop-propagation="true"
       >
        <image src="{{item.img}}"></image>
        <view>{{item.name}}</view>
      </view>
    </view>
  </view>
</view>
Page({
	data:{
	},
	onLoad(){
	},
	//点击tab按钮跳转页面
	tabIcon:function(){
		//这里是跳转页面
	},
	//点击其他位置隐藏遮罩层
	hideIcon:function(){
	
	},
})

hideIcon这个事件我是放到了页面中最大的一个父级点。
子级节点的事件用的是catchtap

事件绑定和冒泡
事件绑定的写法同组件的属性,以 key、value 的形式。

key 以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。自基础库版本 1.5.0 起,在非原生组件中,bind和catch后可以紧跟一个冒号,其含义不变,如bind:tap、catch:touchstart。
value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报错。
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
如在下边这个例子中,点击 inner view 会先后调用handleTap3和handleTap2(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递),点击 middle view 会触发handleTap2,点击 outer view 会触发handleTap1

<view id="outer" bindtap="handleTap1">
  outer view
  <view id="middle" catchtap="handleTap2">
    middle view
    <view id="inner" bindtap="handleTap3">
      inner view
    </view>
  </view>
</view>

在子节点加上了hover-stop-propagation=‘true’
指定是否阻止本节点的祖先节点出现点击态

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现点击按钮打开弹层的效果,可以使用 Bootstrap 提供的 Modal 组件。可以在 HTML 中添加一个 Modal 对话框的代码,然后在按钮的点击事件中调用 JavaScript 函数来打开这个对话框。 以下是一个简单的示例代码: ``` <!-- Modal 对话框 --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">Modal 标题</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> </div> <div class="modal-body"> Modal 内容 </div> </div> </div> </div> <!-- 按钮 --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal"> 打开 Modal </button> ``` 在这个示例中,我们定义了一个 Modal 对话框,包含一个标题和一个内容区域。在页面上添加一个按钮,当用户点击按钮时,会触发 Modal 对话框的打开事件。这是通过在按钮上添加 `data-toggle="modal"` 和 `data-target="#myModal"` 属性来实现的。其中 `data-target` 属性的值指向了 Modal 对话框的 ID。 如果要在 JavaScript 中使用按钮来打开 Modal 对话框,可以在按钮的点击事件中调用 jQuery 的 `modal()` 方法,例如: ``` $('#myButton').on('click', function() { $('#myModal').modal('show'); }); ``` 这个代码会为按钮绑定一个点击事件,当用户点击按钮时,会调用 `$('#myModal').modal('show')` 方法,该方法会打开 ID 为 `myModal` 的 Modal 对话框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值