zoukankan      html  css  js  c++  java
  • 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
    属性
    指向原始的事件对象。
     
     
     
  • 相关阅读:
    XAML学习笔记之Layout(五)——ViewBox
    XAML学习笔记——Layout(三)
    XAML学习笔记——Layout(二)
    XAML学习笔记——Layout(一)
    从0开始搭建SQL Server 2012 AlwaysOn 第三篇(安装数据,配置AlwaysOn)
    从0开始搭建SQL Server 2012 AlwaysOn 第二篇(配置故障转移集群)
    从0开始搭建SQL Server 2012 AlwaysOn 第一篇(AD域与DNS)
    Sql Server 2012 事务复制遇到的问题及解决方式
    Sql Server 2008R2升级 Sql Server 2012 问题
    第一次ACM
  • 原文地址:https://www.cnblogs.com/jerque/p/11881120.html
Copyright © 2011-2022 走看看