点击后没有任何反应。如果我在第一个 if语句中分配变量,则单击然后工作..所以我猜那些带有 makou 变量的东西是不正确的。
var makou = TRUE;
if(makou == TRUE){
$( ".box_box" ).click(function() {
$( ".box" ).animate({
top: "+=300",
}, 50, function() {
});
makou = FALSE;
});
}
if(makou == FALSE){
$( ".box_box" ).mouseleave(function() {
$( ".box" ).animate({
top: "-=300",
}, 50, function() {
});
makou = TRUE;
});
}
答案 0 :(得分:0)
TRUE
和FALSE
必须使用小写字母书写,因为@Spokey说并且您的第二个事件mouseleave
从未设置,因为变量makou
是true
。当您点击makou
将成为false
但点击后将不会再次设置mouseleave
。
将if
条件放在mouseleave
事件处理程序中,如下所示:
var makou = true;
if (makou) {
$( ".box_box" ).click(function() {
$(this).unbind('click'); // unbind click to allow it just one time
$( ".box" ).animate({
top: "+=300",
}, 50, function() {
});
makou = false;
});
}
$( ".box_box" ).mouseleave(function() {
if(!makou) {
$( ".box" ).animate({
top: "-=300",
}, 50, function() {
});
makou = true;
}
这是一个JSFiddle:http://jsfiddle.net/5dzt1v6f/5/