1

focus() 内にコールバック関数がありますが、要素にフォーカスがある限り、関数は再生を続けます。関数を一度だけ再生する方法ですか?

たとえば、このコードでは、テキストエリアがフォーカスを失うまでアラート ('ok') が発生します。アラートを一度だけ再生する方法ですか?

<textarea></textarea>

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

$(function () {

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

});
</script>

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

4

2 に答える 2

2

関数が再生し続けるということではなく、アラートをクリックするためにコントロールから自動的にフォーカスを外し、フォーカスがコントロールに戻り、再びフォーカス イベントを発生させて、次のようにテストしてみてください。アラート以外の何か。

于 2013-03-01T12:51:02.797 に答える
1

関数を使用するように jQuery を更新しますone()

コードは次のとおりです。

$(function () {

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

});

そして、ここにあなたのフィドルがあります:http://jsfiddle.net/9utcy/1/

于 2013-03-01T12:52:26.533 に答える