2015-04-17 66 views
-2

我在这里有一段代码,我希望能够按一个键(f.i.“1”键),所以var isRunning = false。当我按另一个键(f.i.“2”键)时,var isRunning应该变回isRunning = true。它需要尽可能简单(javascript/html),不需要jquery。我只想通过可定义的击键来改变这个var的值。如何通过按下键盘上的按键来更改javascript函数的var?

这是代码:

<script type="text/javascript"> 
var pages=[]; 
pages[0]="page0.html" 
pages[1]="page1.html" 
pages[2]="page2.html" 

var time = 33000; 
var currentIndex = 0; 
var isRunning = true; 

function pageChange() { 
    if(isRunning){ 
     if(currentIndex == 0){ 
      pages = shuffle(pages); 
      console.log(pages); 
      currentIndex = pages.length; 
     } 
     currentIndex--; 
     document.getElementById("frame").src=pages[currentIndex]; 
     console.log(currentIndex); 
    } 
    setTimeout(function() { pageChange(); }, time); 
}; 

window.onload = function(){ 
    pageChange(); 
} 


</script> 
+1

不仅仅是谷歌“的JavaScript关键事件”,你会发现几十个解决方案 –

+0

的jQuery是JavaScript的.. – greenhoorn

+0

@greenhoorn没有jQuery是一个JavaScript库 – rdans

回答

0

这应该做的伎俩;)

document.addEventListener('keydown', function(event) { 
     if(event.keyCode == 49) { //keycode 49 is '1' 
      isRunning = false; 
     } 
     else if(event.keyCode == 50) { //keycode 50 is '2' 
      isRunning = true; 
     } 
    }); 
+0

这的确有诀窍!非常感谢。是否也可以仅使用“1”按钮将var从true连续变为false,再次变为true等。 – TVB

+0

当然是,只要在if语句中使用isRunning =!isRunning并删除else if语句 – Unex

+0

这也可以正常工作。谢谢!欢迎使用 – TVB

0

由于您isRunning是在全球范围内,你可以搭上数字键keydown事件。例如,如果你想赶上整个页面上的事件,是这样的:

window.onkeydown = function(e){ 
    switch(e.keyCode){ 
     case 49: 
     case 97: 
      isRunning = false; 
      break; 
     case 50: 
     case 98: 
      isRunning = true; 
      break; 
    } 
} 
相关问题