在前端开发的过程中,遇到一种情况,需要勾选,为了用户的操作便捷就将click事件放到了DIV上。(其中使用了knockout.js)

代码大概如下:

<div id="one" data-biind="click:clickevent">
<input type="checkbox"><span>有事请勾我</span>
</div>

但是这样写出现了一个奇怪的现象,鼠标点击div一切正常。

但鼠标直接勾选checkbox不正常:

checkbox处于未勾选状态,鼠标直接点击checkbox勾选,此时应该实现是:1、执行div的clickevent事件;2、事件执行完毕后,checkbox处于勾选状态。

但最终的结果却是,checkbox仍然处于未勾选状态。

跟踪调试结果是,在执行完clickevent事件时,checkbox还是处于勾选状态,但clickevent执行完后,接着进入jquery的代码执行,走了两三步后,checkbox即被改成未选中状态。

原因至今未查到。(另外一个地方使用的radiobox也有类似的情况)

没办法,只能变通一下,通过在checkbox上面覆盖一层div,让鼠标点击的时候点的是div而不是checkbox,通过clickevent改变checkbox状态(clickevent事件中本来就有改变checkbox状态的代码)

实现如下:

<div id="one">
<div id="two" data-bind="click:clickevent"></div>
<div id="three">
<input type="checkbox"/> <span>有事请勾我</span>
</div>
</div>

ID为two和three的两个div,设置时关键是需要设置两个属性:position:absolute; z-index:1;

其中上面那层的div的z-index属性要比在下面那层的div大。

以上DIV的ID属性只是为了说明,一般程序中使用class属性设置。

用DIV遮罩解决checkbox勾选无效的问题的更多相关文章

  1. jquery checkbox勾选取消勾选的诡异问题

    jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type=&q ...

  2. 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选

    设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...

  3. 获取checkbox勾选的id

    需求描述:做批量删除或者批量修改的时候需要获得多个id,根据checkbox勾选来获取对应的d 两种方法: //html代码<table id="table1"> &l ...

  4. asp.net 翻页时用ViewState保存上一页checkbox勾选的值

    /// <summary>        /// checkbox勾选取消勾选事件        /// </summary>        /// <param nam ...

  5. element checkbox 勾选时出现弹框提示。

    复选框选中的时候,必须提示是否确定选中,取消勾选的时候也要. 不能解决的思路: 1.element的checkbox只有一个change事件,该事件只返回该选项最新的值(true,false)(不会返 ...

  6. Javascript对checkbox勾选判断,错误提示和按钮变色操作

    同意相关条款未打钩时,登录按钮为灰色且无法提交,点击灰色的登录按钮提示同意相关条款,打钩后变成亮色且可以提交信息. 勾选框及文字: <div class="check-rule&quo ...

  7. checkbox勾选事件,JQ设置css,下拉框JQ选中

    <input id="CheckMainCompany" type="checkbox"/> $(function() { $("#Che ...

  8. checkbox勾选判断

    var xieYi=document.getElementById("xieYi"); if(!xieYi.checked){ alert("请先阅读并勾选购买协议!&q ...

  9. TreeView CheckBox勾选联动

    http://www.cnblogs.com/excellently/p/TreeViewCheckBox.html 在C# Winform项目中用到了TreeView控件,并且需要勾选的功能.父子节 ...

随机推荐

  1. [luogu4728 HNOI2009] 双递增序列 (dp)

    传送门 Solution 前几天刚做了类似题,这种将一个序列拆分为两个单调序列的题一般都是设\(dp[i]\)表示i为一个单调序列的末尾时,另一个序列的末尾是多少 然后应用贪心的思想,在这道题中就是让 ...

  2. mongodb数据库的导出与导入

    数据库的导出 导出类型为json,数据库:mapdb,集合:bike 字段:bikeId,lat,lng,current_time,source ,条件为source字段为ofo第一条数据 mongo ...

  3. 利用WMITool解决浏览器快捷方式启动参数被篡改以及浏览器主页被劫持的问题

    先说说症状 症状①:通过快捷方式启动浏览器,首页跳转到2345以及hao123网址导航页,切系统内安装的多款浏览器(IE.Chrome.Firefox.Opera.Safari.Maxthon)症状相 ...

  4. qwb与整数对

    qwb与整数对 Time Limit: 1 Sec  Memory Limit: 128 MB Description qwb又遇到了一道数学难题,你能帮助他吗? 给出两个整数n和m,请统计满足0&l ...

  5. Android DynamicGrid:拖曳交换位置

     Android DynamicGrid:拖曳交换位置 Android DynamicGrid是一个第三方开源项目,DynamicGrid在github上的项目主页是:https://github ...

  6. [luoguP1816] 忠诚(st表 || 线段树)

    传送门 其实我就是想练练 st表 本以为学了线段树可以省点事不学 st表 了 但是后缀数组中用 st表 貌似很方便 所以还是学了吧,反正也不难 ——代码 #include <cstdio> ...

  7. [CSS3] Use Sticky Positioning for Section Headers

    We can take advantage of sticky positioning to keep a section header at the top of the page while th ...

  8. android 音乐播放器总结

    学习从模仿開始 一个星期完毕的音乐播放器基本功能,具有下一首,上一首,暂停和随机.顺序和单曲等播放.以及保存上一次播放的状态,缺少了歌词显示功能.使用了andbase框架的欢迎动画和界面title. ...

  9. 源代码管理之Git命令的使用

    目录 02.源代码管理之Git命令的使用 2.Git命令行演练-个人开发 2.1 如何学习git指令 2.2 初始化创建本地仓库 2.3 个人开发基本演练 2.4 Git的基本常识 3.Git命令行演 ...

  10. 数据结构之---C语言实现最短路径之Dijkstra(迪杰斯特拉)算法

    此处共同拥有两段代码: 一. 这段代码比較全面,当中參考了github上的相关源代码. 能够说功能强大. //Dijkstra(迪杰斯特拉算法) #include <stdio.h> #i ...