我正在使用Bootstrap button plugin将复选框列表呈现为按钮。除了使用空格键“单击”按钮外,这非常有用。 Bootstrap示例的默认行为是,在按空格将焦点放在复选框按钮之一上时,标签会收到“活动”类,但实际上不会选中复选框元素。我添加了以下javascript,以便在按下空格键时以编程方式单击标签。如果我在某个地方甚至在处理程序的末尾放置了警报,它也会按预期工作。在没有警报的情况下,空格键不会切换按钮状态或选中复选框。
<script>
$(function() {
window.onkeydown = function(event) {
if(event.keyCode === 32 && $(event.target).hasClass('cabin-cb')) {
//alert('hi');
event.preventDefault();
//alert('hi');
$(event.target).closest('label').click();
//alert('hi');
}
};
});
</script>
答案 0 :(得分:0)
在诸如超时处理程序之类的事件中触发“ click”事件,以使其在 您也可以使用 setTimeout(function() {
$(event.target).closest('label').click();
}, 1);
Promise.resolve()
或requestAnimationFrame()
来完成;关键是在键盘处理完成后才发生“点击”。