2010-11-22 3 views
0

Je suis en train de faire un script de calendrier de défilement à l'aide jquery (similaire à celui sur un iPad)glisser le script défilement

Donc, je veux enregistrer la YPosition du mousedown et la mouseup et déplacer un div en conséquence. J'ai essayé d'enregistrer les positions de la souris en utilisant deux variables, l'un à enregistrer sur l'événement mousedown et un à enregistrer sur un événement mouseup ...

mais maintenant le problème est que la valeur de la variable ne se fait pas à travers, donc sur le mouseup, la valeur du mousedown est de nouveau à 0. que ferais-je pour porter la valeur?

Merci beaucoup d'avance!

Le code est ci-dessous:

jQuery(document).ready(function(){ 
var yStart = 0; 
var yEnd = 0; 
$("#year").mousedown (function(e){ 
    var yStart = e.pageY; 
    $(".yStart").text (yStart +"ho"+ yEnd); 
    }).mouseup (function(e){ 
     var yEnd = e.pageY; 
     $(".yEnd").text (yStart +"ho"+ yEnd); 
    }); 
    if (yStart>yEnd) { 
    $("#year ul").animate({top:'-='+liHeight},"fast"); 
}; 

Répondre

0

Portée en Javascript est par fonction. Le yStart que vous utilisez dans la fonction mousedown est différent du yStart que vous utilisez dans la fonction mouseup. Le yStart de la fonction mouseup sera toujours égal à zéro car c'est le yStart qui est défini au début de votre script, en dehors de la liaison d'événement. Vous devriez vous débarrasser de la "var" avant yStart dans votre fonction mousedown, donc au lieu de créer une nouvelle variable locale par ce nom, il écrit la nouvelle valeur dans yStart et il peut être utilisé dans l'autre fonction. Vous devriez également vous débarrasser de la déclaration "var" dans la fonction mouseup pour la même raison.

+0

Merci. Désolé je suis vraiment nouveau à ce sujet .. mais savez-vous où je suis supposé déclarer la variable? Parce que se débarrasser de cela me donne une erreur qui dit que la var yStart et yEnd n'est pas déclarée. – Stephanie

+0

nvm Je l'ai maintenant! Merci beaucoup. – Stephanie

Questions connexes