Javascript 模拟按住Ctrl键
我目前正在尝试更改multiselect元素的默认行为,以便用户可以选择和取消选择多个值,而无需一直按Ctrl键 我找到了一个简单的解决方案,但这在ie8中不起作用(因为在ie中,Javascript 模拟按住Ctrl键,javascript,jquery,events,keydown,multi-select,Javascript,Jquery,Events,Keydown,Multi Select,我目前正在尝试更改multiselect元素的默认行为,以便用户可以选择和取消选择多个值,而无需一直按Ctrl键 我找到了一个简单的解决方案,但这在ie8中不起作用(因为在ie中,onmousedown) 但我认为,只要鼠标悬停在multiselect上,就可以模拟按下控制键: $(document).ready(function() { $('select').hover(function(e) { var kde = jQuery.Event("keydown");
onmousedown
)
但我认为,只要鼠标悬停在multiselect上,就可以模拟按下控制键:
$(document).ready(function() {
$('select').hover(function(e) {
var kde = jQuery.Event("keydown");
kde.ctrlKey = true; //something like this
kde.keyCode = 17; //or this - i don't know
$(e.target).trigger(kde);
});
});
为什么这不起作用
- 是否再次直接释放Ctrl键
- 代码有问题吗
- 我完全错过了什么吗
因此,不幸的是,您将不得不放弃这种方法并寻找其他选项。您可能需要为每个项目添加一个复选框,而不是一个多选控件
在代码中,在选择新函数时,编写不选中其他函数的函数比防止这种默认行为更容易。我认为可能是这样,有人这么说。但我认为它可能仍然可以工作,因为它不会调用浏览器功能(对吗?)。谢谢您的回答是的复选框可以解决控制键的问题。但是,由于在这个特定的select中有如此多的值,复选框对于用户来说是不切实际的。无论如何,谢谢你能不能把很长的复选框列表放入你自己的可滚动div中,有效地创建你自己的列表控件?虽然这是可能的,但我认为这并不比本机控件好(有缺点…)