热键和.load()问题

时间:2017-03-21 12:46:53

标签: jquery

我有一个使用热键的网页。

function HOTKEYS(){
  var keys = {};
  $(document).keydown(function(e) {
    keys[e.which] = 1;
    if (keys[80] == 1 && keys[18] == 1) {
      $('input[name=customer]').focus();
    }

    if (keys[65] == 1 && keys[18] == 1) {
      $('input[name=product]').focus();
    }

    if (keys[86] == 1 && keys[18] == 1) {
      add_conn();
    }

    if (keys[83] == 1 && keys[18] == 1) {
      edit_price();
    }

    console.log(keys);
  });

  $(document).keyup(function(e){
    delete keys[e.which];
  });
}

热键正常工作,直到其中一个热键打开一个激活load()功能的事件。之后,函数HOTKEYS()停止工作。

有没有办法在.load()事件之后再次包含函数HOTKEYS()来修复它?

1 个答案:

答案 0 :(得分:0)

(function(){
    var keys = {};
    $(document).on('keydown',function(e) {
        keys[e.which] = 1;
        if (keys[80] == 1 && keys[18] == 1) {
            $('input[name=customer]').focus();
        }

        if (keys[65] == 1 && keys[18] == 1) {
            $('input[name=product]').focus();
        }

        if (keys[86] == 1 && keys[18] == 1) {
            add_conn();
        }

        if (keys[83] == 1 && keys[18] == 1) {
            edit_price();
        }

        console.log(keys);
    });

    $(document).keyup(function(e){
        delete keys[e.which];
    });
}());

这样做。