当表数据处于焦点时如何触发事件&按下一把钥匙?

时间:2014-01-02 05:02:13

标签: javascript jquery html

我有一些带有类名的td元素,当其中一个td处于焦点时,我需要触发一个弹出窗口。按下 F9 键。我试过以下:

$(document.body).keypress(function (e) {

        $(".HolidayName").hover(function () {

            if (e.keyCode == 120) {
                //alert("first");
                SelectedItemOfListOfValue('HolidayNameWindowGrid');
                HolidayNameWindow.open(); //Open Popup
            }

        }, function () {

        });

        });

我正在使用悬停,因为焦点不能与td元素一起使用(根据我的搜索,不确定)。但目前的输出并不是我想要的。在按下键一次后,它会弹出弹出窗口。将鼠标悬停在该td上。

2 个答案:

答案 0 :(得分:2)

添加一个事件监听器以监视 F9 键(keyCode 120)上的按键。此外,在td悬停/不悬停时设置标志变量。按 f9 时,检查是否设置了悬停标志。如果是,请回复你想要的!

<强> Live demo here (click).

var hovered = 0;

$(document).keydown(function(e) {
  if (e.keyCode === 120 && hovered) {
    console.log('td hovered and f9 pressed!');
  }
});

$('td.hover').hover(function() {
  hovered^= true; 
}, function() {
  hovered^= true; 
});

答案 1 :(得分:2)

试试这个。使用事件委托在'td.HolidayName'上委托keyup事件:

$(document).on('keyup', 'td.HolidayName', function(e) {     
  if (e.which == 120) {
   SelectedItemOfListOfValue('HolidayNameWindowGrid');
   HolidayNameWindow.open(); //Open Popup
 } 

});