2011-01-15 8 views
2

텍스트 영역이 있습니다. 내가 원하는 것은 사용자가 textarea에 집중되어있어 사용자가 텍스트 영역에 집중하지 않거나 희미 해져서 기본 1em으로 되돌릴 때 4em으로 자랄 때입니다. jQuery 라이브 포커스 클릭/흐림 이벤트

$('.comment_content').live('focus click', function() { 
    $(this).addClass('grow'); 
}).live('blur', function() { 
    $(this).removeClass('grow'); 
}); 

은 그래서 벌금과 멋쟁이 작동하지만, 여기에 문제가있다 :

는 여기에 지금까지 무슨이다. 사용자는 댓글을 남기고 뭔가를 파일을 첨부 할 수 있습니다

<textarea type="text" class="comment_content"> </textarea> 
<div id="attachfile">attach file</div> 

내가 jQuery를 위하고 싶은 유일한 예외는 사용자가 파일을 첨부 클릭하면 다음 removeClass이 실행되지해야한다는 것입니다.

아이디어가 있으십니까?

감사

+0

어떻게 흐림을 유발 클릭 한 항목의 ID를 얻을 수 있나요? – AnApprentice

답변

1

나는 약 500 밀리 초에서는 setTimeout 코드 블록에서 removeClass 기능을 넣어 것입니다. attachfile 요소에 '활성'클래스가없는 경우에만 코드가 실행되도록하십시오. 그런 다음 attachfile 요소에 이벤트 처리기를 추가합니다.이 핸들러는 클릭시 '활성'클래스를 추가합니다.

$('.comment_content').live('focus click', function() { 
    $(this).addClass('grow'); 
}); 

$("body").live("click focus", function(evt) { 
    if (!$(evt.target).is('.grow, #attachfile')) 
     $('.comment_content').removeClass('grow'); 
}); 

업데이트 16/01/11

더 나은 문제의 이해 아침과는 다음 jsFiddle을 만들었습니다. http://jsfiddle.net/uc8Qv/

리치

+0

감사합니다. Rich가 내 유스 케이스에서 어떻게 작동하는지 잘 모릅니다. jsfiddle을 기꺼이 만들겠습니까? – AnApprentice

+0

감사합니다. @mu, 어제 밤에 iPad를 사용했습니다. 형식 지정 옵션이 없습니다. – kim3er

+0

이것은 질문에 완벽하게 대답하는 것처럼 보입니다. jsfiddle을 포함시키는 것이 이상입니다. +1. @AnApprentice : 왜 대답이 받아 들여지지 않았습니까? –