2017-05-24 9 views
0

ユーザーがdiv_content_editableでマウスをクリックしてフォーカスを置くと、カスタム関数を実行したいと考えています。問題は、フォーカスがフォーカスをクリック機能からのデフォルトの動作によって追加されたときにのみ、fuctionを実行したいということです。イベントクリックの完了を検出する

$('#chat_box').on('click','.chat_textarea',function(event){ custom_function(); });

マイカスタム関数が置かれてフォーカス後に何かを追加することですが、クリック操作からフォーカスが完了する前にカスタム関数が実行されるので、私はこのフォーカス動作は以下のようにするために完了したときに検出する必要があります私はカスタム関数を呼び出して実行することができます。

ありがとうございます。

$('#chat_box').on('click','.chat_textarea',function(event){ 
    if ($(this).is(':focus')){ 
     custom_function(); 
    } 
}); 
+0

'textarea'がフォーカスしているとき、関数(コールバック)を呼び出す必要がありますか? –

+0

クリックの代わりにフォーカスイベントを聴くべきではないでしょうか?または、クリックリスナ内でHTMLElement.focus()を使用してプログラム的にフォーカスを設定することもできます。 –

答えて

0

これを試してみてください。何が起こるのは、私の関数が実行されているときに、フォーカスがフォーカスの前にある古い位置に欲しいものを適用するということです。私は問題はそれが私の機能を最初に実行し、クリックが実際に新しい場所にフォーカスを置くために終了した後ではないと仮定します。タイムアウト(10)で試してみると、実際に行うべきことをするためにクリックに時間を与える機能の遅れを遅らせたので、機能します。しかし、私はここでタイムアウトを使用することはできませんが悪いです。

0

焦点がすでに存在しているが、その後、ユーザーは、例えば何かを編集するために、そのテキストエリアは、これがフォーカスをrealocatesことで、他のどこかをクリックし、その後、私は私のカスタム関数を実行したい:

関連する問題