我有一个事件处理程序,当单击选择框中的选项时执行。
$('#my-select').live('change', function(evt) {
....
});
有没有办法将 Ctrl 键的状态(按下/未按下)传递给事件处理程序?evt 不包含此信息,因为所有与键相关的属性都未定义。
我有一个事件处理程序,当单击选择框中的选项时执行。
$('#my-select').live('change', function(evt) {
....
});
有没有办法将 Ctrl 键的状态(按下/未按下)传递给事件处理程序?evt 不包含此信息,因为所有与键相关的属性都未定义。
change
事件和用于输入值的键该change
事件不是具有关联键的东西。请阅读 jQuery 的.change()
文档:
当元素的值改变时,change 事件被发送到元素。此事件仅限于元素、框和元素。对于选择框、复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但对于其他元素类型,该事件会延迟到元素失去焦点为止。
这个例子是这样的:
some name
”文本。some test
”,例如。通过按几次退格键,然后导航到下一个字段(例如,通过使用Tab键,或通过点击NextiOS 键盘等),onchange
您导航到其他字段时(或者更确切地说,一旦字段失去焦点)就会触发事件处理程序,因此有关用于输入值的所有键的信息非常不相关。keypress
事件的解决方案要解决这个问题,您需要使用keypress
事件来实现您的解决方案,例如。感谢 jQuery 的.keypress()
功能。在这种情况下,事件对象的ctrlKey
属性(例如在此处列出)让您了解Ctrl密钥的状态。示例用法在这里:https ://stackoverflow.com/a/4604093/548696
keypress
/ keydown
/keyup
并继续阅读的演示change
可在此处获得:
http://jsfiddle.net/tadeck/vPu94/
该演示清除记录的焦点键,将它们保存在每个keypress
事件中(您可以轻松地对其进行编辑并测试不同的情况)并在change
触发事件时读取它们(并在屏幕上输出)(因此当更改的字段离开焦点时)。