2014-04-01 6 views
2

방법 Ctrl 키 + V를하거나 두 번 keyup 기능을 트리거하지 붙여 넣기 두 번이나 jQuery의의 keyup 기능을 트리거?Ctrl 키 + V (붙여 넣기)

이것은 자동 완성 기능을 만들고 텍스트 상자에 붙여 넣을 때 동일한 데이터를 두 번 표시하기 때문에 나에게 문제가됩니다. 이것이 더 이해되기를 바랍니다.

편집 :

좋아들, 지금은 또 다른 문제를 그렇게 할 때 paste을 그 keyup와 결합하는 방법은 후속 $('#this-id').bind('paste', function() {});

그러나 의해 Ctrl 키 + V을 감지하는 방법을 발견했다 keyup가 더 이상 트리거되지 않습니다.

+3

왜 당신에게 문제가 있습니까? 결국 두 개의 키 (V 및 CTRL)를 놓습니다. – ThiefMaster

+2

질문에 대한 시련이 있습니까? 사실이 질문은 의미가 없습니다. – Jai

+0

''keydown'을 사용하여'Ctrl' 키를 트랩하고'keyup'을 사용하여'V' 키를 잡아 먹지 않는 이유는 무엇입니까? – CodingIntrigue

답변

6

모두들 답장을 보내 주셔서 감사 드리며 많은 독서를 통해 많은 블로그가 다음과 같이 말합니다. "자동 완성 기능을 구현하는 경우 'keyup'기능에 의존하지 마십시오.는 "

그래서 나는 $('#this-id').bind('input', function() {});

에 내 코드를 변경 그리고 내가 붙여 넣기 또는 무엇에 대해 지금은 걱정하지 않아도,했다. 나는 이것이 다른 사람들에게도 도움이되기를 바랍니다.

0

$(window).on('keyup', function (event) { 
    if (!event.ctrlKey) { 
     /* here your code for all keys besides CTRL ;-) */ 
    } 
}); 
+0

그래서 코드에는 ** 두 개의 ** 키가 없습니다. – Jai

+0

당신의 요지를 보았지만 Ctrl 키를 걸러 내고 싶지 않습니다. CTRL + V 기능을 두 번만 사용하기를 원하기 때문에 Ctrl 키를 한 번만 누릅니다. 당신의 대답 외에도 다음에 누른 키가 'V'인지 감지 할 수있는 방법이 있습니까? – user2881063

+0

이것을 시도했지만 내 자동 완성 기능이 작동하지 않습니다. – user2881063

0

당신은 KeyUp 이벤트를 읽기 위해 지연을 설정하는 밑줄의 디 바운스를 사용할 수 있습니다 시도 할 수 있습니다.

JSFiddle

JS :

은 작업 코드를 참조

var count = 0; 
function lookup() { 
    $('div#test').html($('input.text').val()); 
    count++; 
    $('div#count').html(count); 
} 

$(document).keyup(_.debounce(lookup, 250, true)); 

HTML :

<div> 
    <input type="text"> 
</div> 

Input: <div id="test"></div> 
Keyup Count: <div id="count"></div> 

underscore.js을에서 :

http://documentcloud.github.com/underscore/underscore-min.js