假设我有一个(非常大的)div标签,在div标签内我有一个(正常大小)按钮,现在我希望能够创建一个快捷方式,如果用户将鼠标悬停在div标签上,他们可以按返回键单击按钮。
$(window).keypress(function(e){
if (e.keyCode == xxx) {
$('div').hover(function(){
$('this button').click();
});
}
});
这就是我想象它在jQuery中的样子(显然不起作用)。我愿意接受建议。 jQuery解决方案很好,简单的javascript解决方案甚至更好。
答案 0 :(得分:1)
您可以在按键处理程序中使用.is(":hover")
来确定是否正在悬停正确的div:
$(window).keypress(function(){
if($("#target").is(":hover")){
alert("pressed!");
}
});
http://jsfiddle.net/y7joukzw/2/ (注意:确保在“结果”框内单击以确保在测试jsfiddle时它是活动框架)
答案 1 :(得分:1)
实际上很容易。
$(window).keypress(function(e){
if (e.keyCode == xxx) {
$('div:hover button').click();
}
});
不要使用.hover()或.on(' hover'),因为它们根本不是选择器。
答案 2 :(得分:0)
不是检查每个按键上的悬停,而是最好还是反转事件检查的顺序,以便在用户悬停时只产生按键开销。类似的东西:
function checkKeypress(e) {
// Check keypress and perhaps do something
}
$('div').hover(
function(){
$(window).keypress(checkKeypress);
},
function() {
$(window).off('keypress', checkKeypress);
}
);