【发布时间】:2015-04-23 10:16:52
【问题描述】:
搜索了几个小时后,我似乎无法弄清楚为什么 jQuery 触发的点击事件没有将实际事件传递给点击函数。这是一个示例:jsfiddle。
$(document).ready(function () {
$('tr').click(function (event) {
if (event.target.type !== 'checkbox') {
$(':checkbox', this).trigger("click");
}
});
$(':checkbox').click(function (event) {
console.log(event.shiftKey);
});
});
如果我单击第一个复选框,控制台会按预期记录“false”。然后,如果我按住 shift 键并选中最后一个复选框,控制台会按预期记录“true”,因为单击该框时,shift 被按住。
现在转到数据并单击行而不是复选框。无论在单击一行时是否按住 shift 键,都会触发复选框单击事件,并根据需要选中/取消选中该框,但 event.shiftKey 始终返回 false。
为什么从行触发点击事件会导致原始事件未传递给点击处理程序?
【问题讨论】:
标签: javascript jquery