2010-11-18 7 views
3

Lorsque l'utilisateur effectue la mise au point sur un élément donné, j'affiche un bouton de sauvegarde. Sur la mise au point, je supprime le bouton de sauvegarde.jQuery- focusout uniquement lorsqu'un autre élément n'est pas cliqué

alt text

L'utilisateur peut soumettre l'entrée soit par retour frapper ou cliquez sur Enregistrer. Quand ils cliquent sur le bouton de sauvegarde, l'entrée perd le focus et le bouton de sauvegarde est enlevé, n'enregistrant pas le clic. Puis-je dire dans la mise au point, si le bouton de sauvegarde a été cliqué?

Dans ma fonction de mise au point que je fais quelque chose comme ceci:

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

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

J'ai essayé d'ajouter un délai à la supprimer(), mais quand la tabulation entre les entrées, il montre plusieurs entités de sauvegarde des boutons (alors que les autres sont enlevé).

Des idées?

+0

serait-il utile d'utiliser .hide() au lieu de .remove()? –

+0

Même avec hide il cachera l'élément avant d'enregistrer le clic. – christo16

Répondre

6

Je pense que vous avez seulement besoin d'un peu de délai entre la mise au point et le retrait/le masquage du bouton.

+0

Le délai d'attente doit être d'au moins 100 pour enregistrer le clic, qui affiche toujours plusieurs boutons de sauvegarde lors de la tabulation entre les entrées. – christo16

+0

Il suffit donc de cacher tous les boutons si le focus se déclenche (avant d'ajouter le bouton qui appartient à l'entrée spéciale). –

0

Crée un div contenant les deux éléments (le texte d'entrée et le bouton) et lier l'événement focusout à cette div

+0

Bonne idée, ne fonctionne pas bien – anthonygore

4

Vous pouvez vérifier si la souris est sur le bouton focusout avant de se cacher le bouton.

Preuve de concept ici: http://jsfiddle.net/dnsEM/

Un problème mineur avec cette mise en œuvre est que le bouton de sauvegarde ne disparaît pas si la zone d'entrée desserre mise au point alors que la souris est sur le bouton et ne se cache sur la souris sur.

Questions connexes