繁体   English   中英

设置间隔后如何在jquery中停止或结束函数

[英]How to stop or end a function in jquery when we are set interval

在JQuery中,当使用setInterval时,如以下代码所示,如​​何停止现有功能?

我正在使用麦克风来访问按钮单击中的语音以停止现有功能

function startConverting() {
  //alert("in function");
  var clinicalNotesArea = $("#clinicalNotesArea").val();
  if ('webkitSpeechRecognition' in window) {
    var speechRecognizer = new webkitSpeechRecognition();
    speechRecognizer.continuous = true;
    speechRecognizer.interimResults = true;
    speechRecognizer.lang = 'en-IN';
    speechRecognizer.start();
    var finalTranscripts = '';
    speechRecognizer.onresult = function(event) {
      var interimTranscripts = '';
      for (var i = event.resultIndex; i < event.results.length; i++) {
        var transcript = event.results[i][0].transcript;
        transcript.replace("\n", "<br>");
        if (event.results[i].isFinal) {
          finalTranscripts += transcript;
        } else {
          interimTranscripts += transcript;
        }
      }

      $("#clinicalNotesArea").val(clinicalNotesArea + " " + finalTranscripts + interimTranscripts);
    };

    speechRecognizer.onerror = function(event) {};
  } else {

    $("#clinicalNotesArea").val(clinicalNotesArea + 'Your browser is not supported. If google chrome, please upgrade!');
  }

  setTimeout(function() {
    $('#clinicalNotesMicrophoneStart').trigger('click');
  }, 600);

};


$("#clinicalNotesMicrophoneStart").click(function() {
  //alert("in click");
  $("#clinicalNotesMicrophoneEnd").attr('hidden', false);
  $("#clinicalNotesMicrophoneStart").attr('hidden', true);
  var r = document.getElementById('result');
  startConverting();

});

$("#clinicalNotesMicrophoneEnd").click(function() {
  //alert("in click");
  $("#clinicalNotesMicrophoneEnd").attr('hidden', true);
  $("#clinicalNotesMicrophoneStart").attr('hidden', false);
  //var r = document.getElementById('result');
  stop.startConverting();

});

您需要存储对超时功能的引用并清除它:

var id = setTimeout(function() {    
    $('#clinicalNotesMicrophoneStart').trigger('click');
}, 600);
clearTimeout(id);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM