2013-03-01 2 views
1

focus() 안에 콜백 함수가 있는데, 포커스가있는 한 함수는 계속 재생됩니다. 함수를 한 번만 재생할 수있는 방법입니까? ?jquery, focus() 함수의 콜백 함수

예를 들어이 코드에서 textearea가 포커스를 잃을 때까지 경고 ('ok')가 표시됩니다. 경고를 한 번 재생하는 방법입니까?

<textarea></textarea> 

<script src="jquery.js"></script> 
<script> 

$(function() { 

    $('textarea').focus(function(){ 
     alert('ok'); 
    }); 

}); 
</script> 
그것은 기능을 계속 재생되지 않는다는 것을

http://jsfiddle.net/manguo_manguo/9utcy/

+0

. offcourse 그것은 우리가 경고를 클릭하고 textarea에 다시 집중할 때 초점을 맞출 것입니다 .. 여기에 다른 코드를 쓰고 그걸 가지고 놀지 마라. 나는 당신의 원래 논리가 do not't 그것에 어떤 경고라도 가지길 바란다 : –

답변

1

one() 기능을 사용하도록 jQuery를 업데이트하십시오. 여기

$(function() { 

    $('textarea').one('focus', function(){ 
     alert('ok'); 
    }); 

}); 

그리고 당신의 바이올린은 다음과 같습니다 :

여기에 코드입니다 당신이 경고를 재생하려는 이유 http://jsfiddle.net/9utcy/1/

+0

그게 바로 제가 찾던 덕분입니다. –

1

는, 당신이 자동으로 경고를 클릭하기 위해 컨트롤에서 초점을 촬영 한 다음 포커스가 컨트롤로 돌아갈 것입니다 초점 이벤트를 다시 한 번 실행하고 경고 외의 다른 작업을 시도해보십시오.

+0

그것은 경계 아니에요! –