[英]Toggle instead of Hover function jQuery
我想每次單擊代碼中指定的類時都重復相同的過程。 它正在處理懸停功能,但是當我切換到單擊功能時,它只能完成一次工作。 而且是不可重復的。
我也切換到clickToggle,它不起作用。 有什么想法嗎?
var sidebarFloat = $('.sidebar').css('float');
$('.sidebar').hover(function() {
sidebarFloat = $(this).css('float');
if (sidebarFloat == 'right') {
$(this).stop().animate({
left: "0px"
}, 500)
} else if (sidebarFloat == 'left') {
$(this).stop().animate({
left: "0px"
}, 500)
}
}, function() {
var width = $(this).width() - 10;
if (sidebarFloat == 'right') {
$(this).stop().animate({
left: +width
}, 500);
} else if (sidebarFloat == 'left') {
$(this).stop().animate({
left: -width
}, 500);
}
});
jQuery hover()函數使用兩個函數作為參數:handleIn和HandleOut。
因此,您將不得不使用單獨的變量來跟蹤點擊狀態。
例如:
var sidebarFloat = $('.sidebar').css('float');
var toggled = false;
$('.sidebar').click(function() {
if (toggled) {
sidebarFloat = $(this).css('float');
if (sidebarFloat == 'right') {
$(this).stop().animate({
left: "0px"
}, 500)
} else if (sidebarFloat == 'left') {
$(this).stop().animate({
left: "0px"
}, 500)
}
} else {
var width = $(this).width() - 10;
if (sidebarFloat == 'right') {
$(this).stop().animate({
left: +width
}, 500);
} else if (sidebarFloat == 'left') {
$(this).stop().animate({
left: -width
}, 500);
}
}
toggled = !toggled;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.