我有一些Javascript可让空格键暂停正在播放的歌曲。但是“ event.stopInmediatePropagation();似乎不起作用...。
我想使用此功能忽略表单或其他内容时的键盘操作。
我正在使用Bootstrap ...

这是我的代码:

$('form').keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '32'){
    }
    event.stopImmediatePropagation();
  });
$(document).keypress(function(event){
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if(keycode == '32'){
    if($('#play').is(":visible")){
      playNextSong(0);
    }
    else{
      pause();
    }
  }
});

最佳答案

如果使用可见性隐藏播放按钮,则需要使用$('#play').css("visibility") == "visible"检查元素是否可见



$('form').keypress(function(event) {
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if (keycode == '32') {}
  event.stopPropagation();
});

$(document).keypress(function(event) {
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if (keycode == '32') {
    if ($('#play').css("visibility") == "visible") {
      //playNextSong(0);
      $('#play').css("visibility", "hidden");
    } else {
      //pause();
      $('#play').css("visibility", "visible");
    }
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div id="play">Play</div>

<form action="">
  <input type="text" />
</form>

关于javascript - jQuery按键忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27253834/

10-14 17:50