javascript - 单击 Select 元素时传递选项

标签 javascript jquery

我这里有一个 jsFiddle - http://jsfiddle.net/hL7Lnf3a/3/ - 带有select文件的下拉菜单。当从菜单中选择文件时 .change()输入处理程序。我想让用户以某种方式告诉我,当他们选择一个文件时,他们不想加载该文件,而是想要删除它。这可以通过在单击菜单中的条目时按住 Shift 键或其他键,甚至右键单击而不是左键单击该条目来实现。但浏览器(我正在运行 Chrome)似乎没有为 .change 设置任何这些指示。事件。也就是说,我没有看到e.shiftKeye.which当更改事件触发时在事件对象中设置。有没有人找到一种方法让用户告诉我他们是否要加载或删除他们选择的文件?

谢谢?

最佳答案

您可以为 Shift 键设置另一个监听器(keyup 和 keydown)。

使用标志变量来表示按键是否被按下,然后在更改监听器中只需检查该标志变量的状态。

类似这样的:

var shiftPressed = false;

$(document).keydown(function(e){
    if (e.keyCode == 16)
        shiftPressed = true;
})

$(document).keyup(function(e){
    if (e.keyCode == 16)
        shiftPressed = up;
})

在这里查看:http://jsfiddle.net/hL7Lnf3a/5/ (尝试在按下或不按下 Shift 的情况下更改选择项)

<小时/>

带有自定义下拉菜单的版本:http://jsfiddle.net/g8ptz2eb/11/

关于javascript - 单击 Select 元素时传递选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26086263/

相关文章:

jquery 时间屏蔽编辑

javascript - 拖放时更改隐藏名称

jquery - 以面向对象的方式使用 jQuery

javascript - 菜单打开时如何展开DIV

javascript - 为什么在应用 css 后 jquery 不起作用?

javascript - stub `window.location.reload` 用于单元测试 - "Some of your tests did a full page reload!"

slider 下的 jQuery UI slider 标签

javascript - 发送 JSON 数组作为 Node.js 的响应

javascript - 如何将 typescript 项目与 html 集成

Javascript 在复选框上启用输入框