如何使用javascript选择(a)悬停元素的子(ren)元素?

时间:2015-02-05 18:51:38

标签: javascript jquery

假设我有一个(非常大的)div标签,在div标签内我有一个(正常大小)按钮,现在我希望能够创建一个快捷方式,如果用户将鼠标悬停在div标签上,他们可以按返回键单击按钮。

$(window).keypress(function(e){
  if (e.keyCode == xxx) {
    $('div').hover(function(){
      $('this button').click();
    });
  }
});

这就是我想象它在jQuery中的样子(显然不起作用)。我愿意接受建议。 jQuery解决方案很好,简单的javascript解决方案甚至更好。

3 个答案:

答案 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);
    }
);