日期:2014-05-16  浏览次数:20383 次

javascript中子标签如何屏蔽父标签的事件
   今天写js代码遇到一个问题,代码如下
 <tr onClick='queryUserInfoByUserId(userId);'>
    <td id='td1'>
      <input type='checkbox' name ='user_info_checkbox'/>
    </td>
    <td id =td2></td>
     ....
 </tr>

   欲实现如下效果:
   点击一行时候 单元格td1 不响应queryUserInfoByUserId事件,而只有选择checkbox操作,点击其他单元格时候响应queryUserInfoByUserId事件。上网查询知道在HTML标签中  标签的响应顺遵循冒泡原则,即如果td1中有事件A 则td1的响应顺序为:
A--->queryUserInfoByUserId
上网查询 解决方法如下:

 <tr onClick='queryUserInfoByUserId(userId);'>
    <td id='td1' onclick='if(document.all)event.cancelBubble=true;else event.stopPropagation();'>
      <input type='checkbox' name ='user_info_checkbox'/>
    </td>
    <td id =td2></td>
     ....
 </tr>

在td1中加入上述代码即可实现