javascript - jQuery 更改带有复选框的事件处理程序

标签 javascript jquery checkbox

我有一个复选框,当启用(选中)它时,我希望执行代码。它可以工作,但是当未选中该框时,代码仍然有效,我希望它在未选中该框时不工作。以下代码位于一个较大的 jQuery 函数中,可以正常工作。当我取消选中该框时,我无法让代码停止工作。作为引用,该复选框允许用户使用箭头键来调整 Canvas 元素。我希望他们能够在选中该框时进行调整,而在未选中该框时无法进行调整。

$("#hMove728").click( function(){
   if($(this).is(':checked')){
    alert("checked");

    $(document).keydown(function(key) {
            switch(parseInt(key.which,10)) {
                case 38:
                    context.yB -= 2;
                break;
                    case 39:
                    x += 2;
            break;
            case 40:
                y += 2;
            break;
            case 37:
                x -= 2;
            break;
            default:
            break;
       }
     update();

    })
   }

});

最佳答案

在这里,检查事件处理程序内复选框的状态:

var moveCheckbox = $("#hMove728");
$( document ).keydown( function( key ) {
  if ( moveCheckbox.is(":checked") ) {
    // ...
  }
});

关于javascript - jQuery 更改带有复选框的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335535/

相关文章:

javascript - 使用 Bootstrap 在按钮单击时显示图像组

javascript - 使用 Shift 键选择多个 div

javascript - 为什么 jQuery.load 不适用于该页面?

c# - FireFox 和 IE9 尝试下载或显示 json-response 而不是让 javascript 解析它

类事件上的 Javascript 焦点元素

checkbox - 为 Paypal 创建一个复选框和捐赠字段

arrays - 如何使用带 Angular 复选框过滤对象数组?

php - 使用 foreach 从 MySQL 中检索数据

javascript - 使用 JavaScript 查找特定链接

javascript - chrome bug 全屏背景重绘