键绑定触发其onclick功能的按钮

时间:2016-04-20 01:45:48

标签: javascript jquery html

我希望左右箭头键在我的Javascript中触发后退和下一次按钮点击。我觉得我没有正确地实现它,因为我的按钮工作但键击没有。

function init() {
        flashmovie = document.getElementById('flashmovie');
        document.getElementById('back').onclick = function () {
            if (c == 0) {
                c = paths.length;
            }
            c--
            displayFiles();
        }

        document.getElementById('next').onclick = function () {
            if (c == paths.length - 1) {
                c = -1;
            }
            c++;
            displayFiles();
        }

        document.keypress(function (e) {
            if (e.which == 37) {
                $("#back").click();
            }
        });

        document.keypress(function (e) {
            if (e.which == 39) {
                $("#next").click();
            }
        });

    }

2 个答案:

答案 0 :(得分:1)

没有jquery,试试这个

document.onkeyup = function(e){
    if (e.which == 37) {
        $('#back').click();
    } else if (e.which == 39) {
        $('#next').click();
    }
}

使用jquery,

$(document).keypress(function(e){
    if (e.which == 37) {
        $('#back').click();
    } else if (e.which == 39) {
        $('#next').click();
    }
});

答案 1 :(得分:1)

您可能想要keydown事件。

function init() {
  document.getElementById('back').onclick = function() {
    console.log('back!');
  }

  document.getElementById('next').onclick = function() {
    console.log('next!');
  }

  document.addEventListener('keydown', function(e) {
    if (e.which == 37) {
      $("#back").click();
    }
  });

  document.addEventListener('keydown', function(e) {
    if (e.which === 39) {
      $("#next").click();
    }
  });
}

init();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="back">Back</button>
<button id="next">Next</button>

我猜到了你想要的事件监听器样式(本机DOM与jQuery),因为你有一个混合,但这应该让你指向正确的方向。

根据经验,如果您有一个非常简单的用例来处理按键,我建议使用一个库,如Keypress