2010-11-18 6 views
3

ユーザーが特定の要素にフォーカスすると、保存ボタンが表示されます。フォーカスアウト時に、私は保存ボタンを削除します。jQuery-他の要素がクリックされていない場合のみフォーカスアウト

alt text

ユーザーがいずれか当たっリターンで入力を提出するか、[保存]をクリックすることができます。保存ボタンをクリックすると、入力がフォーカスを失い、保存ボタンが削除され、クリックが登録されません。保存ボタンがクリックされている場合、フォーカスアウトで教えてもよろしいですか?私のフォーカス機能の中で

私はこのような何か:私は)(削除するために遅延を追加しようとしましたが、入力の間でタブ移動するとき、それは、複数の保存ボタンを示して(他の人がされている間

 $('#save_button').click(function(){ 
      saveEditingField(this); //save input 
      $('#save_button').die("click"); 
     }); 

     $('.editing').focusout(function(e) { 
      $('#isediting').attr('value','false'); 
      $('#edit_controls').remove() 
     }); 

を除去された)。

アイデア?

+0

.remove()の代わりに.hide()を使用すると便利ですか? –

+0

非表示の場合でも、クリックを登録する前に要素を非表示にします。 – christo16

答えて

6

私は、フォーカスアウトとボタンの削除/非表示の間にわずかなタイムアウトが必要だと思います。マウスポインタがボタンを非表示にする前にfocusout上のボタンの上にある場合

+0

クリックを登録するにはタイムアウトが100以上でなければならず、入力間でタブ移動するときに複数の保存ボタンが表示されます。 – christo16

+0

focusinが(特別な入力に属するボタンを追加する前に)発火した場合、すべてのボタンを隠すだけです。 –

0

両方の要素(入力テキストやボタン)を含むdiv要素を作成し、それにfocusOutイベントをバインドするには

+0

良いアイデアは、うまくいかない – anthonygore

4

をDIVかを確認することができます。ここでのコンセプトの

証明:http://jsfiddle.net/dnsEM/

この実装でマイナーな問題は、入力ボックスにマウスがボタンの上にあるとだけ出てマウスに隠されますながら焦点を当て失った場合には消えないボタンを保存することです。

関連する問題