我有一个复选框,当它启用(选中)时,我想要执行代码。它可以工作但是当取消选中该框时,代码仍然有效,我希望在取消选中该框时它不起作用。以下代码位于更大的jQuery函数中。当我取消选中该框时,我无法让代码停止工作。作为参考,复选框允许用户使用箭头键来调整画布元素。我希望他们能够在盒子被checekd时进行调整,并且在未选中时无法调整。
$("#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();
})
}
});
答案 0 :(得分:2)
在这里,检查事件处理程序内的复选框的状态:
var moveCheckbox = $("#hMove728");
$( document ).keydown( function( key ) {
if ( moveCheckbox.is(":checked") ) {
// ...
}
});
答案 1 :(得分:0)
$(function () {
$('input').on('change', function () {
if ($(this).prop('checked')) {
// It is checked
}
});
});
答案 2 :(得分:0)
删除支票时,您必须“取消注册”文档中的“keydown”事件,或者您可以在keydown函数内进行检查。像这样:
$(document).keydown(function(key) {
if(!$("#hMove728").is(':checked')) return;
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();
});
答案 3 :(得分:0)
在其他地方放: (文档)$ .unbind( 'KEYDOWN');
将使用文档元素上的keydown名称取消绑定事件。