2017-11-22 4 views
0

내 키 누르기 fuction은 모든 인쇄기에서 작동하지만 setTimeout은 작동하지 않습니다. 여기 내 HTML과 스크립트입니다;한 번 작업하는 방법 setTimeout 함수는 키 누르기 기능에서

HTML :

<div id="fake" class="full-height col-md-3 col-sm-12 col-xs-12"> 
     <div class="nav-right"> 
      <div class="form-search"> 
       <input id="fake-search" onkeypress="dialogTrigger(event)" class="fake-search" type="text" /> 
      </div> 
     </div> 
    </div> 

스크립트 :

function dialogTrigger(event) { 
    var keyboardInput = event.which; 
    keyboardInput = keyboardInput + 5; 
    var changedInput = String.fromCharCode(keyboardInput); 
    $("#fake-search").val($("#fake-search").val() + changedInput); 
    setTimeout(function() { 
     doSomething(); // about html 
    }, 10000); 
} 
+0

onkeyup 이벤트에 쓰기를 시도하십시오. – nivendha

+0

onkeyup의 setTimeout 기능이 한 번만 작동했습니다. 나는 노력했지만 thnx. – Alperb

+0

var timeout = setTimeout을 사용해야합니다. 그런 다음 키를 누를 때마다 시간 제한을 취소하고 다른 것을 시작하거나 현재의 것을 계속 켜 놓아야 만 어떤 경우에 덮어 쓰지 않아야하는지 결정해야합니다. 지금 당장 대화를 여러 번 해고 할 것입니다. – MartinWebb

답변

1

당신은 논리가 무엇인지를 결정해야합니다. 아이디어는 10 초 후에 한 번 열려있는 대화 상자를 스로틀하는 경우에만 대화 상자를 열려면 그들이

var to; 
    function dialogTrigger(event) { 
     var keyboardInput = event.which; 
     keyboardInput = keyboardInput + 5; 
     var changedInput = String.fromCharCode(keyboardInput); 
     $("#fake-search").val($("#fake-search").val() + changedInput); 

     // The line below clear any existing timeout and start a new one 

     if (to) clearTimeout(to); 
     to = setTimeout(function() { 
      doSomething(); // about html 
     }, 10000); 
    } 
입력을 완료 한 후, 당신은 다른 한편으로이

var to; 
function dialogTrigger(event) { 
    var keyboardInput = event.which; 
    keyboardInput = keyboardInput + 5; 
    var changedInput = String.fromCharCode(keyboardInput); 
    $("#fake-search").val($("#fake-search").val() + changedInput); 

    // The line below will only start the timer if none exists; 

    to = to || setTimeout(function() { 
     doSomething(); // about html 
    }, 10000); 
} 

같은 것을 할 필요가있을 것이다

참고 10000ms는 약 10 초입니다.

+0

Thnx 많이! 10 초 후에 한 번 대화 상자를 열고 싶습니다. 처음에는 제대로 작동합니다. – Alperb