2010-05-13 7 views
-1

Je suis vraiment coincé. Fondamentalement, je suis totalement nouveau à jquery, mais j'ai besoin d'ajouter une sorte de minuterie sur mousover afin que la page ne soit pas foiré si la souris va partout dans la page. voici mon script .. de toute façon je peux facilement le mettre en œuvre?Besoin d'ajouter une intention de survol?

<script> 
jQuery('cc').mouseover(function() { 
$("squareleft3").hide(); 
$("twitter").hide(); 
$("facebook").hide(); 
$("squareright").hide(); 
$("getintouch").hide(); 
$("getintouch2").hide(); 
$("getintouch3").hide(); 
$("vicarimage").hide(); 
$("squaredown2").hide(); 
$("squareleft2").hide(); 
$("one").hide(); 
$("whatis").hide(); 
$("squaredown").hide(); 
$("whoweare").hide(); 
if ($("whoweare:first").is(":hidden")) 
    if ($("squaredown:first").is(":hidden")) 
    if ($("squareleft3:first").is(":hidden")) { 
    if ($("twitter:first").is(":hidden")) 
if ($("squareright:first").is(":hidden")) 
if ($("getintouch:first").is(":hidden")) 
if ($("getintouch2:first").is(":hidden")) 
if ($("getintouch3:first").is(":hidden")) 
if ($("vicarimage:first").is(":hidden")) 
if ($("squaredown2:first").is(":hidden")) 
if ($("squareleft2:first").is(":hidden")) 
if ($("one:first").is(":hidden")) 
if ($("whatis:first").is(":hidden")) 
jQuery('getinvolved').fadeIn(); 
jQuery('squareleft').slideToggleWidth(); 
} else { 
$("squareleft").hide(); 
$("getinvolved").hide(); 
} }); 
</script> 

Cheers.

+3

Bon chagrin qui fait beaucoup à faire à chaque souris. –

+0

une chance que vous pourriez aider? Ce qui me rend fou ... La façon la plus simple serait de le faire fonctionner par clic plutôt que par survol de la souris, afin qu'il puisse effacer tout ce qui se trouve dans le temps ... mais je préfèrerais de préférence passer la souris. –

+3

Tous vos sélecteurs sont erronés. (À moins que vous ayez un HTML vraiment bizarre) – SLaks

Répondre

1

Prenez une copie de hoverIntent.

lien dans votre région HEAD.

Au lieu de mouseOver(), utilisez hoverIntent()

Il existe diverses options supplémentaires pour régler les seuils de synchronisation (voir la documentation).

Comme d'autres l'ont souligné, votre code est partout. Mais hoverIntent résout le problème de timing.

+0

qui ne semble pas fonctionner .. c'est clairement une manière horrible de faire disparaître des choses, pourriez-vous me donner un petit aperçu de la façon dont je pourrais faire cela, mais avec une intention de vol stationnaire? –

+0

HoverIntent ne fait que réduire la sensibilité du passage de la souris, en exigeant un certain nombre de millisecondes sans mouvement avant de tirer. Si vous voulez des conseils généraux sur la façon d'améliorer votre code, cela dépasse le cadre de cette question. Mais pour les débutants, vous devriez vous concentrer sur une meilleure compréhension de la façon dont les sélecteurs jQuery peuvent éviter le besoin de plusieurs instructions conditionnelles. Regardez à bascule(). Regardez dans l'utilisation d'une classe pour plusieurs éléments, de sorte qu'un seul $ ('. Socialbadges'). Toggle() remplace de nombreux if() s. Et regardez dans la structuration de votre code HTML pour être ciblé plus efficacement par les sélecteurs jQuery. –

+0

Aucune idée de ce à quoi ressemble votre document, mais en supposant un DIV avec un tas d'autres tags à l'intérieur, le tout avec une classe "socialbadges", et avec l'intention de les masquer et de les montrer à la souris, vous voudriez quelque chose le long de ces lignes: $ ('div # someContainer'). hoverIntent (fonction() {$ ('. socialbadges'). slideToggle()}). Je ne peux pas en dire plus sans savoir ce que vous essayez d'accomplir. –

1

sont toutes les classes ou $("getintouch2").hide(); ID de votre référence? est getintouch2 une classe? si c'est le cas, il doit avoir une période devant lui, ou un hachage avant si c'est un identifiant. comme si: $(".getintouch2").hide(); pour la classe, ou $("#getintouch2").hide(); s'il s'agit d'un ID.

Je pense que l'aide hover au lieu de mouseover serait plus ce que vous voulez, puis vos instructions if je pense sont un peu foiré, si vous utilisez plusieurs si ce, vous devez mettre & & entre eux pour les relier en un seul, i J'ai probablement dit que c'était faux, mais je lirais plus de didacticiels jquery parce que le tout est un peu outa-wack. Bonne chance, il m'a fallu un certain temps pour apprendre Jquery, beaucoup d'essais et d'erreurs, et beaucoup de questions Stack Overflow.

Les gens vont généralement vous aider avec le code si vous utilisez des petits morceaux de code, et surtout si vous avez un petit exemple de ce que vous essayez de le faire sur http://www.jsfiddle.com il est tellement plus rapide et plus facile d'aider les gens quand ils utilisent Jsfiddle. Je vais donc décomposer votre code en un petit exemple, et essayer d'obtenir les corrections un par un, si vous avez une instruction if qui ne fonctionne pas, non de l'autre non plus, mais vous avez posté tellement de code que C'est probablement écrasant pour la plupart des gens qui vous répondraient avec le bon code si vous l'aviez posté sur jsfiddle ou si vous l'aviez fait beaucoup plus petit. Donc, travaillez-en un morceau à la fois, et Stack Overflow est une aubaine, rappelez-vous que j'ai beaucoup appris ici et j'ai tellement d'aide, les gens consacrent tellement de temps à aider les autres, c'est presque inspirant. me donne envie d'aider les autres aussi. Oh, et hoverIntent est un plugin génial que j'utilise souvent, il le fait si la personne déplace sa souris à travers l'écran, peut-être du bas de l'écran jusqu'à la navigation, elle n'activera pas TOUT le mouseover/hover effects, ils doivent ralentir leur souris jusqu'à une certaine vitesse pour que l'effet se produise, c'est parfait.