在jquery中的元素中单击并悬停功能

时间:2013-08-29 09:40:28

标签: jquery css

我有一个导航栏,可以在悬停时扩展并缩小鼠标。我想在导航栏中插入一个点击功能,点击导航栏后不会减少。怎么做。 目前我的代码是

$(".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"});
    });

如何在我的现有代码上实现所需的结果

3 个答案:

答案 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);