首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jquery中的元素中单击和悬停函数

问在jquery中的元素中单击和悬停函数
EN

Stack Overflow用户
提问于 2013-08-29 09:40:27
回答 3查看 141关注 0票数 1

我有一个导航条,它在悬停时扩展,在鼠标出时减少。我想插入一个点击函数到导航栏,点击后的导航条不会减少。怎么做呢。目前我的代码是

代码语言:javascript
复制
$(".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"});
    });

如何在当前代码上实现所需的结果

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-29 09:57:41

代码语言:javascript
复制
$(".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的评论之后更新

代码语言:javascript
复制
$(".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);
票数 0
EN

Stack Overflow用户

发布于 2013-08-29 09:43:01

是的有可能。您可以使用.on() 事件来完成它,单击处理程序附件。

代码语言:javascript
复制
$('#navbar').on('click', function(){
 //ToDos
 $(this).unbind('hover');  //Incase if you want to stop hovering
});

我建议您使用.on()和.off()事件处理程序附件。

代码语言:javascript
复制
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);
}
票数 0
EN

Stack Overflow用户

发布于 2013-08-29 09:46:01

代码语言:javascript
复制
$('#navbar').on('click', function(){
$("#navbar_inner").css({"width":"972px","margin-left":"0px"});
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18507386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档