使用JavaScript / JQuery玩了一下,并制作了一个“害羞”的按钮,而不只是一个带有单词的p-tag。它工作正常,除了bool goDown似乎没有改变,所以它总是下降。我的代码出了什么问题?
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;
}
}
答案 0 :(得分:1)
主要问题在于:
$(".moveme").hover(move());
您正在调用move()
而不是使用move
作为处理程序,您需要它而不使用括号,如下所示:
$(".moveme").hover(move);
即使这样做,你也会在每个hover
事件上分配一个新的.hover()
处理程序,我怀疑这是你真正想要的。很难确切地说出你追求的是什么,但我认为就是这样:
$(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);
});
});
当您悬停/离开元素时,如果goDown
为true
,则会分配一个向上向下的动画,如果goDown
为false
,则会反过来。