복붙노트

[JQUERY] 트리거 JS / jQuery를에 키 누르기 /를 keyDown /의 keyup 이벤트?

JQUERY

트리거 JS / jQuery를에 키 누르기 /를 keyDown /의 keyup 이벤트?

해결법


  1. 1.이 같은 그들에게 직접 전화와 이벤트 중 하나를 트리거 할 수 있습니다 :

    이 같은 그들에게 직접 전화와 이벤트 중 하나를 트리거 할 수 있습니다 :

    $(function() {
        $('item').keydown();
        $('item').keypress();
        $('item').keyup();
        $('item').blur();
    });
    

    그건 당신이 뭘 하려는지합니까?

    당신이해야 아마 또한 트리거 .focus () 잠재적으로 .change ()

    특정 키를 사용하여 키 이벤트를 트리거하려면 다음과 같이 수행 할 수 있습니다 :

    $(function() {
        var e = $.Event('keypress');
        e.which = 65; // Character 'A'
        $('item').trigger(e);
    });
    

    jQuery를 이벤트 키 누르기 : 키가 특별히 .which 속성을 크로스 브라우저 호환성에 대한?, 누르기 여기에 키 누르기 이벤트의 몇 가지 흥미로운 토론이있다.


  2. 2.당신은 같은 이벤트를 파견 할 수

    당신은 같은 이벤트를 파견 할 수

    el.dispatchEvent(new Event('focus'));
    el.dispatchEvent(new KeyboardEvent('keypress',{'key':'a'}));
    

  3. 3.이의 키를 입력 트리거하려면, 나는 키 코드 속성을 사용하여, 특히, @ebynum 응답을 수정했다.

    이의 키를 입력 트리거하려면, 나는 키 코드 속성을 사용하여, 특히, @ebynum 응답을 수정했다.

    e = $.Event('keyup');
    e.keyCode= 13; // enter
    $('input').trigger(e);
    

  4. 4.여기에 어떤 이벤트를 트리거하기 위해 바닐라 JS 예입니다 :

    여기에 어떤 이벤트를 트리거하기 위해 바닐라 JS 예입니다 :

    function triggerEvent(el, type){
    if ('createEvent' in document) {
            // modern browsers, IE9+
            var e = document.createEvent('HTMLEvents');
            e.initEvent(type, false, true);
            el.dispatchEvent(e);
        } else {
            // IE 8
            var e = document.createEventObject();
            e.eventType = type;
            el.fireEvent('on'+e.eventType, e);
        }
    }
    

  5. 5.EventTarget.dispatchEvent (이벤트) 및 이벤트와 새로운 KeyboardEvent입니다 전달하여 : 당신이 이것을 달성 할 수있다.

    EventTarget.dispatchEvent (이벤트) 및 이벤트와 새로운 KeyboardEvent입니다 전달하여 : 당신이 이것을 달성 할 수있다.

    예를 들면 : element.dispatchEvent (새 KeyboardEvent입니다 ( '키를 누를 때', { '키': 'A'}))

    예를 들어 작업 :

    // 문제의 요소를 얻을 CONST 입력 = document.getElementsByTagName ( "입력") [0]; // 입력 요소에 포커스 input.focus (); // 입력 요소에 추가 이벤트 리스너 input.addEventListener ( '누르기'(이벤트) => { 을 console.log ( "당신은 프레스 키가", event.key을); }); input.addEventListener ( '를 keyDown'(이벤트) => { CONSOLE.LOG (`키 : $ {event.key} down`을 누르면 됨); }); input.addEventListener ( '의 keyup'(이벤트) => { CONSOLE.LOG (`키 : $ {event.key은} released`있다); }); // 파견 키보드 이벤트 input.dispatchEvent (신품으로 KeyboardEvent ( '누르기'{ '키': 'H'})); input.dispatchEvent (새 KeyboardEvent입니다 ( '를 keyDown', { '키': 'E'})); input.dispatchEvent (신품으로 KeyboardEvent ( '의 keyup'{ '키' 'Y'}));

    MDN에 dispatchEvent

    MDN KeyboardEvent입니다


  6. 6.당신은 지금 할 수있어 :

    당신은 지금 할 수있어 :

    var e = $.Event("keydown", {keyCode: 64});
    

  7. 7.우선, 나는 Sionnach733에서 샘플을 완벽하게 일을 말할 필요가있다. 일부 사용자는 실제 사례의 부재에 대해 불평하고있다. 여기 내 두 센트입니다. https://www.youtube.com/tv :이 사이트를 사용할 때 마우스 클릭 시뮬레이션 작업을했습니다. 당신은 어떤 비디오를 열고이 코드를 실행 시도 할 수 있습니다. 그것은 다음 비디오로 전환을 수행합니다.

    우선, 나는 Sionnach733에서 샘플을 완벽하게 일을 말할 필요가있다. 일부 사용자는 실제 사례의 부재에 대해 불평하고있다. 여기 내 두 센트입니다. https://www.youtube.com/tv :이 사이트를 사용할 때 마우스 클릭 시뮬레이션 작업을했습니다. 당신은 어떤 비디오를 열고이 코드를 실행 시도 할 수 있습니다. 그것은 다음 비디오로 전환을 수행합니다.

    function triggerEvent(el, type, keyCode) {
        if ('createEvent' in document) {
                // modern browsers, IE9+
                var e = document.createEvent('HTMLEvents');
                e.keyCode = keyCode;
                e.initEvent(type, false, true);
                el.dispatchEvent(e);
        } else {
            // IE 8
            var e = document.createEventObject();
            e.keyCode = keyCode;
            e.eventType = type;
            el.fireEvent('on'+e.eventType, e);
        }
    }
    
    var nextButton = document.getElementsByClassName('icon-player-next')[0];
    triggerEvent(nextButton, 'keyup', 13); // simulate mouse/enter key press
    

  8. 8.KeyboardEventInit에 타이프 캐스팅에 대한 올바른 키 코드 정수를 제공

    KeyboardEventInit에 타이프 캐스팅에 대한 올바른 키 코드 정수를 제공

    const event = new KeyboardEvent("keydown", {
              keyCode: 38,
            } as KeyboardEventInit);
    

  9. 9.나는 청취자가 jQuery 플러그인 내에서 정의 된 특정 컨텍스트에서, 성공적 결국 그 청취자에 의해 체포 나를 위해 키 누르기 이벤트를 시뮬레이션하는 유일한 것은,의 setTimeout을 사용하는 것을주의 ()을 그릴 거라 생각 했어요. 예를 들면

    나는 청취자가 jQuery 플러그인 내에서 정의 된 특정 컨텍스트에서, 성공적 결국 그 청취자에 의해 체포 나를 위해 키 누르기 이벤트를 시뮬레이션하는 유일한 것은,의 setTimeout을 사용하는 것을주의 ()을 그릴 거라 생각 했어요. 예를 들면

    setTimeout(function() { $("#txtName").keypress() } , 1000);
    

    .ready () 함수의 끝에 위치하지만 $ ( "#의 txtName")의 사용.의 키는 (), 무시되었습니다. 어떤 특정 DOM 보충 어쨌든 비동기 적으로 생성되지되고 있었다.

  10. from https://stackoverflow.com/questions/3368578/trigger-a-keypress-keydown-keyup-event-in-js-jquery by cc-by-sa and MIT license