[javascript] jQuery로 키 누르기 시뮬레이션

jQuery를 사용하여 링크를 클릭 할 때 KeyPress를 어떻게 시뮬레이션 (트리거?) 할 수 있습니까? 예를 들어 사용자가 다음 링크를 클릭하는 경우 :

<a id="clickforspace" href="#">Click Here</a>

그런 다음 링크를 클릭하면 마치 키보드에서 “스페이스 바”를 누르는 것과 같습니다.

이와 같은 것으로 가정합니다.

$("#clickforspace").click(function(e) {
    e.preventDefault();
    //... Some type of code here to initiate "spacebar" //
                                      });

이것을 달성하는 방법에 대한 아이디어가 있습니까?



답변

jQuery의 키 누르기 이벤트는 이러한 종류의 작업을 수행하기위한 것입니다. .trigger ()에 문자열 “keypress”를 전달하여 이벤트를 트리거 할 수 있습니다. 그러나 좀 더 구체적으로 말하자면 실제로 jQuery.Event 객체 (유형을 “keypress”로 지정)를 전달하고 스페이스 바가되는 키 코드와 같은 원하는 속성을 제공 할 수 있습니다.

http://docs.jquery.com/Events/trigger#eventdata

자세한 내용은 위의 문서를 읽으십시오.


답변

나는 이것이 당신이 찾고있는 것이라고 믿습니다.

var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 40;
$("whatever").trigger(press);

에서 여기 .


답변

다른 옵션 :

$(el).trigger({type: 'keypress', which: 13, keyCode: 13});

http://api.jquery.com/trigger/


답변

이 SendKeys jQuery 플러그인을 사용해 볼 수 있습니다.

http://bililite.com/blog/2011/01/23/improved-sendkeys/

$(element).sendkeys(string)입력, 텍스트 영역 또는 contenteditable = true 인 기타 요소의 삽입 지점에 문자열을 삽입합니다. 삽입 지점이 현재 요소에 없으면 sendkeys가 마지막으로 호출되었을 때 삽입 지점이 어디에 있었는지 기억합니다 (삽입 지점이 요소에없는 경우 끝에 추가됨).


답변

이것은 작동합니다 :

var event = jQuery.Event('keypress');
event.which = 13;
event.keyCode = 13; //keycode to trigger this for simulating enter
jQuery(this).trigger(event);


답변