복붙노트

[JQUERY] 입력 포커스가있는 경우 시험에 jQuery를 사용하여

JQUERY

입력 포커스가있는 경우 시험에 jQuery를 사용하여

해결법


  1. 1.더 이상 필요가 그것을 자신을 추가하지 않으려면 우리 있도록 초점 선택 : jQuery를은을 추가했습니다. 그냥 $를 ( "..")를 사용합니다. ( "초점")

    더 이상 필요가 그것을 자신을 추가하지 않으려면 우리 있도록 초점 선택 : jQuery를은을 추가했습니다. 그냥 $를 ( "..")를 사용합니다. ( "초점")

    편집 : 시간의 변화, 우리는 초점을 테스트하기위한 더 나은 방법을 찾아, 새로운 좋아하는 벤 독일어에서이 요점은 다음과 같습니다

    jQuery.expr[':'].focus = function( elem ) {
      return elem === document.activeElement && ( elem.type || elem.href );
    };
    

    여기 마티아스 Bynens에서 인용 :

    새 선택기를 정의하고 있습니다. 플러그인 / 제작을 참조하십시오. 그럼 당신은 할 수 있습니다 :

    if ($("...").is(":focus")) {
      ...
    }
    

    또는:

    $("input:focus").doStuff();
    

    방금 요소가 포커스를 가지고있는 알아낼하려는 경우, 당신은 사용할 수 있습니다

    $(document.activeElement)
    

    누락 된 경우 초점 선택 : 당신이 확실하지 버전이 1.6이거나 낮출 경우이 있다면, 당신은 추가 할 수 있습니다 :

    (function ( $ ) {
        var filters = $.expr[":"];
        if ( !filters.focus ) { 
            filters.focus = function( elem ) {
               return elem === document.activeElement && ( elem.type || elem.href );
            };
        }
    })( jQuery );
    

  2. 2.CSS :

    CSS :

    .focus {
        border-color:red;
    }
    

    JQuery와 :

      $(document).ready(function() {
    
        $('input').blur(function() {
            $('input').removeClass("focus");
          })
          .focus(function() {
            $(this).addClass("focus")
          });
      });
    

  3. 3.여기에 현재 접수보다 더 강력한 대답입니다 :

    여기에 현재 접수보다 더 강력한 대답입니다 :

    jQuery.expr[':'].focus = function(elem) {
      return elem === document.activeElement && (elem.type || elem.href);
    };
    

    제 (elem.type || elem.href) 시험 체 등 가양 걸러 첨가하고 있습니다. 이 방법은, 우리는 폼 컨트롤 및 하이퍼 링크를 제외한 모든 요소를 ​​필터링해야합니다.

    (벤 독일어로이 요지를 촬영.)


  4. 4.이 질문에 잠시 동안 주변되었습니다, 그리고 몇 가지 새로운 규칙은 놀이로 온 이후, 나는 내가 .live 방법은 감가 상각 된 언급해야한다고 생각합니다.

    이 질문에 잠시 동안 주변되었습니다, 그리고 몇 가지 새로운 규칙은 놀이로 온 이후, 나는 내가 .live 방법은 감가 상각 된 언급해야한다고 생각합니다.

    그 자리에서 CSTE 연구진 방법은 이제 도입되었습니다.

    이들 문서는 어떻게 작동하는지 설명하는 데 매우 유용하다;

    그래서, 당신은 '입력 초점을 맞춘'이벤트를 대상으로하기 위해서는, 당신은 스크립트에서이를 사용할 수 있습니다. 뭔가 같은 :

    $('input').on("focus", function(){
       //do some stuff
    });
    

    이것은 매우 강력하고도 당신은뿐만 아니라 Tab 키를 사용할 수 있습니다.


  5. 5.나는 전적으로 당신이 뒤에있어하지만 같은이 소리가 변수로 입력 요소 (? 또는 사업부)의 상태를 저장하여 달성 할 수있는 일이 아니에요 :

    나는 전적으로 당신이 뒤에있어하지만 같은이 소리가 변수로 입력 요소 (? 또는 사업부)의 상태를 저장하여 달성 할 수있는 일이 아니에요 :

    $('div').each(function(){
    
        var childInputHasFocus = false;
    
        $(this).hover(function(){
            if (childInputHasFocus) {
                // do something
            } else { }
        }, function() {
            if (childInputHasFocus) {
                // do something
            } else { }
        });
    
        $('input', this)
            .focus(function(){
                childInputHasFocus = true;
            })
            .blur(function(){
                childInputHasFocus = false;
            });
    });
    

  6. 6.소자의 상태를 표시하는 클래스를 사용하는 대신, 내부 데이터 저장소 기능이다.

    소자의 상태를 표시하는 클래스를 사용하는 대신, 내부 데이터 저장소 기능이다.

    P.S : 당신은 논리 값을 저장할 수 있고 당신이 무엇을 () 함수의 데이터를 사용하여 원하는. 그것은 단지 문자열에 대한이 아니다 :)

    $("...").mouseover(function ()
    {
        // store state on element
    }).mouseout(function ()
    {
        // remove stored state on element
    });
    

    그리고 그것은 요소의 상태를 접근의 문제입니다.


  7. 7.사람의 염려 경우 지금 캡처 초점을 훨씬 더 나은 방법이, $ (foo는) .focus (...)

    사람의 염려 경우 지금 캡처 초점을 훨씬 더 나은 방법이, $ (foo는) .focus (...)

    http://api.jquery.com/focus/


  8. 8.이 시뮬레이션 마우스 오버율 및로 마우스를 사용하는 방법에 대한 생각. 또한 mouseEnter와하는 MouseLeave 조사

    이 시뮬레이션 마우스 오버율 및로 마우스를 사용하는 방법에 대한 생각. 또한 mouseEnter와하는 MouseLeave 조사


  9. 9.두 상태를 추적 할 참 / 거짓 플래그로 (공중 선회, 집중), 하나 명의 변경, 모두가 거짓 경우 제거합니다 경계하는 기능, 그렇지 않으면 쇼의 경계를 실행할 때마다.

    두 상태를 추적 할 참 / 거짓 플래그로 (공중 선회, 집중), 하나 명의 변경, 모두가 거짓 경우 제거합니다 경계하는 기능, 그렇지 않으면 쇼의 경계를 실행할 때마다.

    그래서 : 세트 = true를 집중 onfocus 및, 위해 onblur 세트 = 거짓을 집중했다. 세트 onMouseover와 공중 선회 = 사실, 세트 = 거짓을 맴돌고 onmouseout. 이러한 이벤트의 각 추가 기능을 실행 한 후 / 경계를 제거합니다.


  10. 10.화면에 모든 입력 포커스가있는 경우 지금까지 내가 아는 한, 당신은 당신이 초점 추적의 일종을 설정해야 브라우저를 요청할 수 없습니다.

    화면에 모든 입력 포커스가있는 경우 지금까지 내가 아는 한, 당신은 당신이 초점 추적의 일종을 설정해야 브라우저를 요청할 수 없습니다.

    나는 보통 "noFocus"라는 변수가 true로 설정합니다. 그럼 난 noFocus의 거짓을 만드는 모든 입력에 포커스 이벤트를 추가합니다. 그럼 난 사실에 noFocus를 다시 설정 모든 입력에 흐림 이벤트를 추가합니다.

    나는 아주 쉽게 핸들이, 나는 당신이 동일한 작업을 수행 할 수있는 jQuery 플러그인을 만들 수 있어요있는 Mootools의 클래스가 있습니다.

    그이 만들어 일단, 당신은 어떤 경계 스와핑을하기 전에 noFocus을 확인 할 수 있습니다.


  11. 11.초점하지만이 : 더는 없다 선택된 http://docs.jquery.com/Selectors/selected

    초점하지만이 : 더는 없다 선택된 http://docs.jquery.com/Selectors/selected

    하지만 당신이 일이 당신은 아마 흐림 이벤트와 함께 일해야 선택한 항목을 기반으로 봐 방법을 변경하려는 경우.

    http://docs.jquery.com/Events/blur


  12. 12.요소가 집중되어 있는지 확인하려면 플러그인이있다 : http://plugins.jquery.com/project/focused

    요소가 집중되어 있는지 확인하려면 플러그인이있다 : http://plugins.jquery.com/project/focused

    $('input').each(function(){
       if ($(this) == $.focused()) {
          $(this).addClass('focused');
       }
    })
    

  13. 13.내가 선택할 수있는 .live ( "초점") 이벤트 세트가 있었다 () (강조) 텍스트 입력의 내용을 사용자가 새 값을 입력하기 전에 선택하지 않았을 수 있도록.

    내가 선택할 수있는 .live ( "초점") 이벤트 세트가 있었다 () (강조) 텍스트 입력의 내용을 사용자가 새 값을 입력하기 전에 선택하지 않았을 수 있도록.

    $ (formObj) ALL 기타 사항 서보 -OFF ();

    때문에 다른 브라우저 사이의 단점으로, 선택은 때때로을 발생하는 클릭에 의해 대체 될 것이며, 그것은 바로 텍스트 필드 내에서 커서를 놓고 찬성 후 내용을 취소 할 (FF에서 주로 확인했다하지만 IE에서 실패)

    나는 선택에 약간의 지연을 넣어이 문제를 해결 수 있다고 생각 ...

    에서는 setTimeout (함수 () {$ (formObj) ALL 기타 사항 서보 -OFF ()}, 200);

    선택이 일어났다 전에 다음에 하나 개의 필드에서 탭하면이 일을 잘하고 지속 할 선택하지만 재미있는 문제가 .. 일어나 초점은 다음 필드로 전환 할 것입니다. 선택 스틸 포커스 때문에, 초점은 다시 가서 새로운 "초점"이벤트를 트리거합니다. 이 화면을 통해 모든 춤 입력 선택의 폭포에서 끝났다.

    실행 가능한 솔루션 분야는 여전히 () 선택을 실행하기 전에 포커스를 가지고 있는지 확인 할 수 있지만 언급 한 바와 같이, 난 그냥 전체 자동 하이라이트와 분배보다는이어야한다 무엇을 돌려 결국 ... 확인하는 간단한 방법이 없을 것 하나의 jQuery를 서브 루틴 라덴 거대한 함수에 () 호출을 선택 ...


  14. 14.내가 jQuery를 초점 () 함수 내에서 추가 및 제거하는 임의의 클래스라는 .elementhasfocus을 만드는 일을 감아 무엇. 때 .elementhasfocus에 대한 마우스 밖으로 가져가 () 함수를 실행, 그것은 검사 :

    내가 jQuery를 초점 () 함수 내에서 추가 및 제거하는 임의의 클래스라는 .elementhasfocus을 만드는 일을 감아 무엇. 때 .elementhasfocus에 대한 마우스 밖으로 가져가 () 함수를 실행, 그것은 검사 :

    if(!$("#quotebox").is(".boxhasfocus")) $(this).removeClass("box_border");
    

    이 클래스가없는 그래서 경우 (읽기 : 사업부 내에 요소에 포커스가 없음) 경계가 제거됩니다. 그렇지 않으면 아무 일도 발생하지 않습니다.


  15. 15.단순한

    단순한

     <input type="text" /> 
    
    
    
     <script>
         $("input").focusin(function() {
    
        alert("I am in Focus");
    
         });
     </script>
    
  16. from https://stackoverflow.com/questions/967096/using-jquery-to-test-if-an-input-has-focus by cc-by-sa and MIT license