2010-12-12 2 views
2

jQuery live() 함수를 사용하여 양식 텍스트 입력의 테두리 색상을 변경하여 사용자가 현재 입력중인 요소를 더 잘 나타낼 수있게했습니다. 새로운 양식 입력이 페이지에 동적으로 삽입되는 특정 인스턴스가 있으므로 이상의 live()을 사용하십시오.jQuery live()가 Firefox에서 텍스트 커서를 표시하지 않습니다.

jQuery를 통해 읽음 documentation for live() 나는 다른 핸들러가 실행되지 않도록 각 핸들러가 false를 반환해야 함을 이해합니다. 실제로 이것이 의미하는 바를 오해하고 있는지 여부에 관계없이 양식 입력에서 테두리 색을 추가하고 제거해야하는 코드는 다음과 같습니다. 포커스가있을 때

$('input.highlight').live({ 
    focus: function() { 
     $(this).parent('span').addClass('input-focus'); 
     return false; 
    }, 
    blur: function() { 
     $(this).parent('span').removeClass('input-focus'); 
     return false; 
    } 
}); 

이 파이어 폭스를 제외하고 크롬과 사파리에서 완벽하게 작동 깜박이는 텍스트 커서는 양식 입력 내부에 표시되지 않습니다. return false;을 제거하면 표시됩니다. 이 jQuery 버그가 발생할 수 있습니까?

+0

그 방법으로 .live가 거품을 내고 그 값이 false로 돌아 가면 어떤 이벤트가 더 이상 작동하지 않게됩니다. – Raynos

+0

Chrome과 Safari가 경계 색상 클래스를 설정하고 false 또는 false로 돌아간 것은 무엇입니까? 파이어 폭스가 돌아 오지 않았습니까? – greenie

답변

1

안녕하세요, 저는 같은 문제가있었습니다. 나는 $ (this) .focus();를 추가함으로써 문제를 극복했다. 돌아 오기 전에 거짓.

$('input.highlight').live({ 
    focus: function() { 
     $(this).parent('span').addClass('input-focus'); 
     $(this).focus(); 
     return false; 
    }, 
    blur: function() { 
     $(this).parent('span').removeClass('input-focus'); 
     return false; 
    } 
}); 

희망이 도움이됩니다.

관련 문제