【问题标题】:Trying to make a switch in Jquery尝试在 Jquery 中进行切换
【发布时间】:2015-09-17 12:51:30
【问题描述】:

我正在尝试在 Jquery 中进行切换,但它并没有真正起作用...

这是我的代码:

$(document).keydown(function (event) {
    var playPause = 0;
    var keycode = (event.keyCode ? event.keyCode : event.which);

        if (keycode == '80') {
        switch (playPause) {
        case 0:
            angular.element('#playBtn').trigger('click');
                playPause = 1;
            break;
        case 1:
            angular.element('#pauseBtn').trigger('click');
                playPause = 0;
            break;
        }
    }
});

它实际上不像开关那样工作,因为我只能按一次它就会启动,但它永远不会进入暂停的情况 1。

我的开关错了吗?请告诉我如何解决这个问题。

这是整个代码:

 $(document).keydown(function (event) {
    var playPause = 0;
    var keycode = (event.keyCode ? event.keyCode : event.which);
    event.preventDefault();

    if (keycode == '80') {
        switch (playPause) {
        case 0:
            angular.element('#playBtn').trigger('click');
                playPause = 1;
            break;
        case 1:
            angular.element('#pauseBtn').trigger('click');
                playPause = 0;
            break;
        }
    }

    if (keycode == '39') {
        angular.element('#nextBtn').trigger('click');
    }

    if (keycode == '37') {
        angular.element('#previousBtn').trigger('click');
    }
});

【问题讨论】:

  • 试图在 Jquery 中进行切换 我猜你正在使用 angular。
  • 我用来执行此操作的代码是 Jquery,但我调用的是角度元素。

标签: jquery triggers switch-statement case keycode


【解决方案1】:

playPause 变量在本地范围内,而不是全局范围内,因此它始终从 0 开始。将 var playPause = 0; 声明放在 $(document) 行之前,它应该可以工作。

【讨论】:

  • 老实说,我几乎可以肯定 var playPause = 0; 是在正确的位置。
  • @Goldenowner 每次你keydown 都会重置为 0
  • @billyonecan 实际上是这样,但是当我将它放在 $(document) 之前时,它甚至不知道 switch 中的 playPause 吗?而且它没有得到正确的颜色,所以这也不完全正确..
  • 没关系,我会闭嘴,你们是对的。现在可以了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 2020-09-09
  • 2013-04-21
  • 1970-01-01
  • 2014-05-11
  • 2012-03-08
  • 1970-01-01
相关资源
最近更新 更多