JavaScript/JQuery事件处理程序问题

JavaScript/JQuery事件处理程序问题,javascript,jquery,Javascript,Jquery,一直在玩JavaScript/JQuery,并制作了一个“shy”按钮,而它只是一个带有单词的p标记。它工作正常,除了布尔仓库似乎没有改变,所以它总是下降。我的代码怎么了 另外,VS2010中的JavaScript调试似乎不是很好,这是一个已知的问题吗 提前谢谢 if (typeof naarBeneden == 'undefined') { var goDown = new Boolean(true); } $(document).ready(function () { $

一直在玩JavaScript/JQuery,并制作了一个“shy”按钮,而它只是一个带有单词的p标记。它工作正常,除了布尔仓库似乎没有改变,所以它总是下降。我的代码怎么了

另外,VS2010中的JavaScript调试似乎不是很好,这是一个已知的问题吗

提前谢谢

if (typeof naarBeneden == 'undefined') {
    var goDown = new Boolean(true);
}

$(document).ready(function () {

    $(".moveme").animate({ "left": "+=500px"
    }, 2000);
    $(".moveme").hover(move());
});


function move() {
    if (goDown) {
        $(".moveme").hover(function () {
            $(this).animate({ "top": "+=50px" }, 0)
        });
        goDown = false;
    }
    else {
        $(".moveme").hover(function () {
            $(this).animate({ "top": "-=50px" }, 0)
        });
        goDown = true;
    }
}

主要问题是:

$(".moveme").hover(move());
您正在调用
move()
而不是将
move
用作处理程序,您需要不带括号的处理程序,如下所示:

$(".moveme").hover(move);
即使这样做,您也会在每个
悬停
事件上分配一个新的处理程序,我怀疑这是您真正想要的。很难说清楚你到底在追求什么,但我想这就是:

$(function () {
  var goDown = typeof naarBeneden != 'undefined';
  $(".moveme").animate({ "left": "+=500px" }, 2000);
              .hover(function () {
                $(this).animate({ "top": goDown ? "+=50px" : "-=50px" }, 0);
              }, function() {
                $(this).animate({ "top": !goDown ? "+=50px" : "-=50px" }, 0);
              });
});

当您悬停/离开元素时,如果
货仓
,则分配一个向上然后向下的动画;如果
货仓
,则分配相反的动画:永远不要使用
新布尔值
。它不做任何你想做的事情,并且有奇怪的行为,比如
newboolean(false)?1:0
1