我有一个导航栏,可以在悬停时扩展并缩小鼠标。我想在导航栏中插入一个点击功能,点击导航栏后不会减少。怎么做。 目前我的代码是
$(".nav_list li").css('display','none');
$("#navbar").hover(function(){
$("#navbar_inner").css({"width":"972px","margin-left":"0px"});
$(".nav_list li").delay(800).fadeIn(500);
},
function(){
$(".nav_list li").stop(true,true);
$(".nav_list li").fadeOut(001);
$("#navbar_inner").css({"width":"70px","margin-left":"451px"});
});
如何在我的现有代码上实现所需的结果
答案 0 :(得分:0)
是的可能。您可以使用 .on()事件点击处理程序附件
来执行此操作$('#navbar').on('click', function(){
//ToDos
$(this).unbind('hover'); //Incase if you want to stop hovering
});
我建议您使用 .on()
和 .off()
事件处理程序附件。
isHover = true; // Bool variable to hover or not
$("#navbar").on('hover', animation);
$('#navbar').on('click', function () {
if (isHover) {
$(this).off('hover');
isHover = false;
} else {
$(this).on('hover', animation);
isHover = true;
}
});
function animation() {
$("#navbar_inner").css({
"width": "972px",
"margin-left": "0px"
});
$(".nav_list li").delay(800).fadeIn(500);
}
答案 1 :(得分:0)
$('#navbar').on('click', function(){
$("#navbar_inner").css({"width":"972px","margin-left":"0px"});
});
答案 2 :(得分:0)
$(".nav_list li").css('display', 'none');
function handler1() {
$(this).off('hover').one("click", handler2);
}
function handler2() {
$(this).on('hover').one("click", handler1);
}
$("#navbar").one("click", handler1);
OP发表评论后更新
$(".nav_list li").css('display', 'none');
function animate() {
$("#navbar_inner").css({
"width": "972px",
"margin-left": "0px"
});
$(".nav_list li").delay(800).fadeIn(500);
}
function animate_off() {
$(".nav_list li").stop(true, true);
$(".nav_list li").fadeOut(1);
$("#navbar_inner").css({
"width": "70px",
"margin-left": "451px"
});
}
function handler1() {
$(this).off('hover').one("click", handler2);
}
function handler2() {
$(this).on('hover', function () {
animate();, animate_off();
}).one("click", handler1);
}
$("#navbar").one("click", handler1);