2010-08-21 3 views
1

Hey les gars, ok, donc, j'ai une playlist jPlayer plugin jQuery caché sur ma page d'accueil (http://www.marioplanet.com).jQuery détection de clic en dehors de la zone spécifiée problème

Maintenant, il est caché par défaut et est seulement supposé être activé en cliquant sur l'image étiquetée "Musique" dans le coin en haut à droite de mon en-tête <div>.

Cela fonctionne très bien, et une fois qu'un utilisateur clique sur l'image, une action slideToggle sympa et lisse se produit sur l'élément <div id="player"> et elle est révélée.

Maintenant, tout est bon. Jusqu'à ce que l'utilisateur clique à nouveau n'importe où sauf l'image Musique, l'élément <div id="player"> glissera encore une fois, disparaissant.

Le seul problème, c'est lorsque l'utilisateur final clique à nouveau sur l'image musicale, car, autant que je sache, il glisse deux fois!

Ce n'est certainement pas ce que nous voulons.

Alors, voici le code qui a été adapté par courrier utile de Magnar:

$('#text_music').click(function() { 
    $('#jplayer').slideToggle(500, function() { 
     $("body").click(function (event) { 
      var outside = $(event.originalTarget).parents("#popup").length === 0; 
      if (outside) { 
       $("#jplayer").slideToggle(500); 
       $("body").unbind("click"); 
      } 
     }); 
    }); 
}); 

#text_music est mon image à lire "Musique"
#jplayer est mon <div> contenant mon plugin jPlayer

Alors, que Je veux essayer et faire est de déclarer une variable, tout comme la façon dont var outside est déclaré dans le code ci-dessus, qui gère avec le clic de l'image #text_music une fois que le #jplayer <div> est déjà visible.

Cependant, j'ai besoin d'un peu d'aide pour comprendre la signification de cette variable.

Quelqu'un veut-il offrir des mots de sagesse?

:) Merci!

Répondre

Questions connexes