单击Select元素时传递选项

时间:2014-09-28 15:07:08

标签: javascript jquery

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

感谢?

1 个答案:

答案 0 :(得分:1)

您可以为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/(尝试在按下和不按下班次的情况下更改选择项目)


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