html5 mui checkbox点击没反应,只有点击lable时候才有响应

mui checkbox用法

mui的checkbox的用法,官方文档这么说:

DOM结构

<div class="mui-input-row mui-checkbox">
  <label>checkbox示例</label>
  <input name="checkbox1" value="Item 1" type="checkbox" checked>
</div>


默认checkbox在右侧显示,若希望在左侧显示,只需增加.mui-left类即可,如下:

<div class="mui-input-row mui-checkbox mui-left">
  <label>checkbox左侧显示示例</label>
  <input name="checkbox1" value="Item 1" type="checkbox">
</div>

使用问题

在使用的过程中,我们会发现点击整行,会触发复选框勾选动作,但是如果直接点击checkbox的input标签事没有任何反应的。有些网友会说“不会呀,我测试使用的时候点击是正常的呀?”,笔者只想说,幼稚,天真。

让笔者帮你们好好分析可以的理由:

1、你们屏幕很小,导致点击复选框,其实就是在点击label标签

2、你们屏幕很大,但是复选框所在的容器很小,同样会像1阐述的那样

3、。。。

问题解决

说了这么多,真累

直接说怎么解决吧!

要想解决,就要先知道怎么才能达到我们预期的效果。

显然,我说过,点击label的时候是会触发checkbox选中的效果,这个笔者也从mui.js的8370行的代码中验证过了。

解决方案其实是曲线救国。

直接上代码和效果图再讲解:

代码

		<div class="mui-content" style="background: purple!important;margin-top: 15%;">
			<div class="mui-row" style="height: 100px;background-color: orangered;">
				<div class="mui-col-xs-2">
					<div class="mui-input-row mui-checkbox condition-item" style="background-color: white;height: 100px;margin: 0;">
						<label style="background-color:transparent;position: absolute;z-index: 100;height: 100%;"></label>
						<input name="checkbox" type="checkbox" style="background-color: greenyellow;" checked="checked"  id="test-div">
					</div>
				</div>
				<div class="mui-col-xs-10">
					我是模拟label
				</div>
			</div>
		</div>

效果图

可以看到白色区域就是一整个勾选区域,这个区域是由mui原生的checkbox改装来的,其实就是让其中的label内容清空,然后覆盖整个白色区域,形成透明遮罩的效果。

可以看到红色区域是模拟的label,可以在这里头写自己的内容。

经过这样改造之后,点击白色区域任一未知,复选框都会被勾选,而点击红色区域就不会触发勾选的效果了,看到这边有没有觉得跟京东、淘宝的购物车页面很像,是的,笔者就是从这边得到启发的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行侠_阿涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值