2013-04-07 6 views
1

selectbox의 옵션을 클릭하면 실행되는 이벤트 핸들러가 있습니다.추가 정보를 이벤트 처리기에 전달하십시오.

Ctrl 키 (눌림/누르지 않음)의 상태를 이벤트 처리기로 전달하는 방법이 있습니까? evt는 모든 주요 관련 속성이 정의되지 않았기 때문에이 정보를 포함하지 않습니다.

+1

변경 이벤트는 흐림 값의 변경에 대해서만 트리거하므로 키 개념이 없기 때문에 keyup, keydown, keypress 등을 사용해야합니다. live()는 최신 버전의 jQuery에서 제거되었습니다. – adeneo

+0

다중 선택 드롭 다운을 구현 하시겠습니까? 그럴 경우, 당신을 위해 할 준비가 된 플러그인이 있습니다. –

+0

그냥 CTRL + click을 클릭하면 Mac에서 컨텍스트 메뉴가 기본적으로 열립니다. 귀하의 사이트가 Mac 사용자를 대상으로한다면, 나는'CTRL'로 아무 것도하지 않고 클릭 만하면됩니다. –

답변

0

change 이벤트 및 값

change 이벤트를 입력하는 데 사용되는 키는 관련 키가있는 것이 아닙니다. jQuery의 .change() 설명서를 읽으십시오.

변경 이벤트는 값이 변경되면 요소로 전송됩니다. 이 이벤트는 요소, 상자 및 요소로 제한됩니다. 선택 상자, 체크 상자 및 라디오 단추의 경우 사용자가 마우스로 선택하면 이벤트가 즉시 발생하지만 다른 요소 유형의 경우 요소가 포커스를 잃을 때까지 이벤트가 연기됩니다. 당신은 어떤 입력 필드가

  1. :

예는 이것이다.

  • "some name"텍스트를 필드에 입력하십시오.
  • 다른 필드로 이동하기 전에 "some test"으로 변경하십시오. 예 : 백 스페이스 몇 번을 눌렀을 때, 당신은 다음 필드로 이동합니다 (예. 키를 사용하여, 또는 iOS 키보드 등에 다음을 눌러),
  • onchange 이벤트 핸들러가 실행되고, 다른로 이동하는 경우 필드가 아니라 (즉, 필드가 포커스를 잃는 순간) 값을 입력하는 데 사용되는 모든 키에 대한 정보는 거의 무관합니다.
  • 해결 방법이 문제를 해결하기 위해 keypress 이벤트

    를 사용하여, 당신은 예를 들어, keypress 이벤트를 사용하여 솔루션을 구현해야합니다. jQuery의 .keypress() function에게 감사드립니다. 이 경우 이벤트 객체의 ctrlKey 속성 (예 : here)을 사용하면 Ctrl 키의 상태를 알 수 있습니다. https://stackoverflow.com/a/4604093/548696

    keypress/keydown/keyup에 저장 키에 대한 데모 및 change

    에 읽기는 여기에 있습니다 : : 사용 예제는 여기

    http://jsfiddle.net/tadeck/vPu94/

    데모 초점에 기록 된 키 웁니다 change 이벤트가 발생할 때마다 모든 keypress 이벤트에 저장하고 (쉽게 편집 할 수 있고 다른 사례를 테스트 할 수 있음) 해당 이벤트를 읽고 (화면에 출력 함) 그는 필드 나뭇잎을 바꿨다.)

    +0

    이 경우 어떻게 도움이되는지 알기가 어렵습니다. 데모 코드를 타 데크에게 보내 주시겠습니까? –

    +0

    @ Beetroot-Beetroot : 기본적인 아이디어는 간단합니다. 'onchange'는 값을 입력하는 데 사용 된 키를 알지 못하고 'onkeypress'는이를 알고 있습니다. 따라서'onkeypress'를 사용하여 적절한 정보를 수집하고'onchange'가 호출 될 때 읽어야합니다. jQuery의'.data() '를 사용하여 특정 입력과 관련된 데이터를 저장 (변경) 할 수 있습니다. 나머지는 실제로 응용 프로그램의 실제 부분이며 특정 요구 (예 : 백 스페이스 처리 방법)에 따라 다릅니다. – Tadeck

    +0

    @ Beetroot-Beetroot : 데모 링크를 추가했습니다. – Tadeck

    관련 문제