拖动和滚动脚本

时间:2010-11-22 04:16:40

标签: javascript jquery

我正在尝试使用jquery制作滚动日历脚本(类似于iPad上的那个)

所以,我想记录mousedown和mouseup的yPosition并相应地移动一个div。我尝试使用两个变量记录鼠标位置,一个记录在mousedown事件上,另一个记录在mouseup事件中...

但是现在的问题是变量值没有被传递,所以在mouseup上,mousedown的值又回到0.我该怎么做才能携带值?

提前多多感谢!

代码如下:

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");  
};

1 个答案:

答案 0 :(得分:0)

Javascript中的范围是按功能划分的。您在mousedown函数中使用的yStart与您在mouseup函数中使用的yStart不同。 mouseup函数的yStart将始终为零,因为它是在事件绑定之外的脚本开头定义的yStart。您应该在mousedown函数中删除yStart之前的“var”,因此不是通过该名称创建新的局部变量,而是将新值写入yStart,并且可以在其他函数中使用它。您也应该出于同样的原因去掉mouseup函数中的“var”声明。