1

我正在尝试将按钮单击转换为启用或禁用功能的切换,具体取决于其状态。该功能允许使用回车键进行表单提交。

var enterToggle = true;
function enterToggleListener(elem) {
  enterKeyPress();
  elem.click(function() {
    enterToggle = !enterToggle;
    console.log('enter-toggle clicked')
    if (enterToggle === false) {
      console.log('enter toggle false')
      // What do I need to add here to stop 'enterKeyPress()'?
    } else {
      console.log('enter toggle true')
      enterKeyPress();
    }
  });
}

function enterKeyPress() {
  $('#noteText').keypress(function(e){
    if(e.which == 13){
      $('#noteButton').click();
    }
  });
}

enterToggleListener($('#toggle-button'));

我不明白的是如何在错误enterKeyPress()时停止该功能enterToggle。有什么建议么?

编辑:清理代码,添加了@James Montagne 的答案

var enterToggle = true;
function enterToggleListener(elem) {
  elem.click(function() {
    enterToggle = !enterToggle;
    if (enterToggle === false) {
      $('#enter-toggle').text('Enter key saves note (OFF)')
    } else {
      $('#enter-toggle').text('Enter key saves note (ON)')
    }
  });
}

function enterKeyPress() {
  $('#noteText').keypress(function(e){
    if(enterToggle && e.which == 13){
      $('#noteButton').click();
    }
  });
}

enterKeyPress();
enterToggleListener($('#enter-toggle'));
4

1 回答 1

0
function enterKeyPress() {
    $('#noteText').keypress(function(e){
        if(enterToggle && e.which == 13){
            $('#noteButton').click();
        }
    });
}

您可以简单地检查处理程序中变量的值。这样您就不需要像您当前的方法那样继续添加和删除处理程序。

但是,如果由于某种原因必须添加和删除,则可以使用off

于 2013-05-13T19:19:11.013 回答