jquery 点击tr选中checkbox,解决checkbox的默认点击事件被阻止的问题

 

1.第一种,!$(event.target).is(‘input‘),判断触发事件的元素是否为input。此时使用event.target,而不是this,获取事件本身,防止触发事件冒泡的问题。

$("#data_table tr").on("click",function (event) {
                     if (!$(event.target).is(‘input‘))
                     {
                         $(‘input:checkbox‘, this).prop(‘checked‘, function (i,  value) {
                             return !value;
                         });
                     }
                 })

注释:event.target属性的作用是获取到出发事件的元素。网上说使用event.target,在ie下可能会出现版本不兼容问题,我在ie11下进行测试,发现是可以的。所以应该是, jQuery对其封装后,避免了W3C、IE和safari浏览器不同标准的差异。若出现不兼容问题,可尝试使用如下方式。

  var thisEvent = window.event || event;
  var targetEvent = thisEvent.srcElement;
  if (!targetEvent) {
        targetEvent = thisEvent.target;
  }

2.第二种,跳过checkbox所在列。本次示例是位于第一列,因此给除第一个td之外的td绑定点击选中事件。

//直接使用not("td:first-child"),或者设置第一列td类为.tdcolFirst,即.not(".tdcolFirst")。效果是一致的

$(".tr_check td").not("td:first-child").bind("click", function () {
                     $(this).parent().find("input:checkbox").prop(‘checked‘, function  (i, value) {
                         return !value;
                     });
                 })  

3.event下的部分常用属性或方法:


方法/属性

类型

作用

 event.preventDefault()


方法

阻止默认的事件行为。

 event.stopPropagation()

方法

阻止事件的冒泡。

event.type
属性
返回当前触发事件的事件类型。

 event.target

属性
获取执行事件【出发事件】的元素。

event.relatedTarget

属性

返回当触发时,该事件所涉及到的其他dom元素。

event.pageX/event.pageY

属性
获取光标相对页面的x坐标和y坐标。

event.which

属性

鼠标单击事件中,获取鼠标的左、中、右键,在键盘事件中获取键盘所在按钮。1 鼠标左键 2 鼠标中键 3 鼠标右键

event.originalEvent

属性

指向原始的事件对象。

原文地址:https://www.cnblogs.com/axqa/p/11881120.html

时间: 2024-08-27 09:41:55

jquery 点击tr选中checkbox,解决checkbox的默认点击事件被阻止的问题的相关文章

Vue -- element-ui el-table 点击tr项页面跳转,返回后缓存回显点击项

页面跳转反显 点击table tr项后,页面跳转到下级页面,返回回显搜索条件.当前页码.并将点击项select选中.滚动条也被记录回显跳转时滚动的位置 思路: 页面临时缓存我选择使用sessionStorage,点击tr行将搜索条件和页码,点击行的id进行存储 data(){ return { } } setSessionStore (name, content) { if (!name) return if (typeof content !== 'string') { content = J

点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find.find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了.然后判断状

jQuery把所有被选中的checkbox的某个属性值连接成字符串

有这样的一个需求:对于一组checkbox,当点击每个checkbox后,把当前处于选中状态的checkbox的某个属性值取出来连接成字符串,并以逗号分开. html部分: <input type="checkbox" id="1"/> <label for="1">选项一</label> <br/> <input type="checkbox" id="2&qu

js点击行选中checkbox

1.点击行选中checkbox复选框 //点击行勾选 $("#Qub_tb_List").on("click", "tr", function () { var input = $(this).find("input"); if ($(input).val() == "on") { return; } $("#Qub_tb_List *").not(input).prop("c

jquery 获取页面所有选中checkbox的值

<script type="text/javascript"> //type 是用于判断类型的,与主题无关 function doAll(type) { var ids = ''; //获取所有选中的值,将其用逗号隔开 $('input[type="checkbox"]:checked').each(function(index,value) { if($(value).val() != 'on') { ids += $(this).val() + ',

checkbox复选框和div click事件重叠,点击div后复选框也被选中,同时改变div颜色,否则则不选中

 checkbox复选框和div click事件重叠,点击div后复选框也被选中,同时改变div颜色,否则则不选中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> div { display: inline-block; width: 100px; margi

freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式

今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西大部分都是CRUD,不过作为一个菜鸟感觉还是压力山大,废话不说了开始上代码: 首先在后台Controller中添加数据处理,因为之前已经实现了显示所有复选框的选项功能了,所以这次只需要得出需要默认选中的数据,然后发到页面进行处理: 虽然代码只有这么一点,不过也耗费了好几个小时来弄出来了... 这是修

用DIV遮罩解决checkbox勾选无效的问题

在前端开发的过程中,遇到一种情况,需要勾选,为了用户的操作便捷就将click事件放到了DIV上.(其中使用了knockout.js) 代码大概如下: <div id="one" data-biind="click:clickevent"> <input type="checkbox"><span>有事请勾我</span> </div> 但是这样写出现了一个奇怪的现象,鼠标点击div一切正

解决checkbox的attr(checked)一直为undefined问题

投稿:whsnow 字体:[增加 减小] 类型:转载 时间:2014-06-16我要评论 需要做个一个全选的checkbox功能,遇到checkbox的attr("checked")一直为undefined,下面与大家分享下最终的解决方案 最近本屌丝应项目开发需求,需要做个一个全选的checkbox功能. 哎呀吗~~这不是很简单的事情么,一个总的checkbox,N多个子checkbox,总的checkbox一旦选中,子checkbox全部选中,总的一旦不选中,子的也都不选中. 拿到这