2016-12-25 4 views
0

특정 사이트에서 닌자 양식을 사용하고 있으며 무언가를 입력 할 때마다 화살표 키가 작동하지 않습니다. 나는 연구를 수행하여이 공동체에 비슷한 비슷한 것을 발견했습니다 (here).화살표 키가 양식에서 작동하지 않습니다.

그래서 사이트의 JS 파일을 확인하고 언급 된 내용을 정확히 발견했습니다. 나는 화살표 키 해제에 대한 책임을 생각 코드 세트주의 :

// disable/enable scroll (mousewheel and keys) from https://stackoverflow.com/a/4770179     
    // left: 37, up: 38, right: 39, down: 40, 
    // spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36 
    var keys = [37, 38, 39, 40], wheelIter = 0; 

    function preventDefault(e) { 
     e = e || window.event; 
     if (e.preventDefault) 
     e.preventDefault(); 
     e.returnValue = false; 
    } 

    function keydown(e) { 
     for (var i = keys.length; i--;) { 
      if (e.keyCode === keys[i]) { 
       preventDefault(e); 
       return; 
      } 
     } 
    } 

을하지만 내가 처음 단계별 절차를 명시하지 않은 언급 한 자원부터 다음을 할 모르겠어요 . 전체 코드를 제거해야합니까? 나는 분명히 테스트를 할 수는 있지만, 실제로 눈치 채지 못할 수도있는 다른 변화가있을 때 그것이 효과가 있다고 생각하게 될지도 모른다고 생각하고 있습니다.

커뮤니티의 안내에 감사드립니다. 감사.

아마 실제 양식에 대한 링크를 제공해야합니다. Here you go.

+0

왜 화살표 키를 사용하여 영구적으로 스크롤 할 수 없게하는 코드가 있습니까? 그건 정말 안좋아. –

답변

0

jQuery를 사용하여 대상이 양식 요소인지 확인할 수 있으며, 그렇다면 기본 동작을 차단하는 불쾌한 코드를 호출하지 않아도됩니다.

function keydown(e) { 
    // Don't block arrow keys on form elements 
    if($(e.target).is(':input')) { 
     return; 
    } 
    for (var i = keys.length; i--;) { 
     if (e.keyCode === keys[i]) { 
      preventDefault(e); 
      return; 
     } 
    } 
} 
+0

이건 분명히 효과가있다. 최고 감사합니다! –

관련 문제