1

ボタンのクリックを、状態に応じて機能を有効または無効にするトグルに変えようとしています。この関数を使用すると、Enter キーをフォームの送信に使用できます。

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'));

私が理解していないのは、 falseの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