Fiddle:http://jsfiddle.net/TKWzH/8/
"测试弹出"是项目的当前功能。"测试弹出窗口2"是我希望我的脚本发挥的作用。然而,实际的脚本在点击执行时有更多的功能,而不仅仅是关闭弹出窗口。
有没有办法将on-enter和on-moseup命令组合成一行?
$("#popup2 label").on('keyup || mouseup', function (event) {
$('#popup2').css('display', 'none');
});
类似的东西是我正在寻找的,但我希望key up只对enterkey keyup起作用。正如上面所写的,任何键都会发生这种情况。
我之所以尝试这样做,是因为我想让表单键盘可以访问。正如你从小提琴中可以看出的那样,如果你用键盘浏览Test Pop,你必须在选择单选按钮后重新打开对话框。
只需使用一个空格。
$("#popup2 label").on('keyup mouseup', function (e) {
if (e.type == 'keyup' && e.which != 13) return;
$('#popup2').css('display', 'none');
});
来自文档:
.on( events [, selector] [, data], handler(eventObject) )
事件一个或多个空格分隔的事件类型和可选名称空间,如"click"或"keydown.myPlugin"。
$("#popup2 label").on('keyup mouseup', function (e) {
if (e.type==='keyup') { //key was pressed
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter was pressed
//Do something
$('#popup2').css('display', 'none');
}
}else{
//mouseup was the trigger
$('#popup2').css('display', 'none');
}
});
可以简化很多,但只是为了展示它是如何做到的!