废话不多说,直接上代码
$(document).ready(function () {
//第一行是表頭,不需要點擊事件
//如果页面中只有一个table的话,可以直接用$("table")这种方式,不过还是建议加上id
//关于'>',如果页面生成的table中包含tbody时,请将'>'替换为空格,或者改为'table>tbody>tr'格式
$("[id$='tableId']>tr:not(:first)").bind('click', function () {
//找到点击行的checkbox,我这里是放在第一列
//如果不是第一列的话,可以使用td:nth-child()(从前往后)或者td:nth-last-child()(从后往前),下标都是从1开始
var thisObj = $(this).find("td:first-child>input[type='checkbox']");
if (thisObj.is(":checked")) {
$(thisObj).prop("checked", false);
}
else {
$(thisObj).prop("checked", true);
}
})
//阻止checkbox的冒泡事件,radio同理
$("input[type='checkbox']").click(function () {
stopPropagation(event)
})
})
//防止事件冒泡
function stopPropagation(e) {
e = window.event || e;
if (document.all) {
//只有ie识别
//cancelBubble 检测是否接受上层元素的事件的控制。
//true 不被上层元素的事件控制。
//false 允许被上层元素的事件控制。这是默认值。
e.cancelBubble = true;
}
else {
e.stopImmediatePropagation();
}
}
}