javascript - 悬停切换时的 jQuery Animate 高度

标签 javascript jquery html css

好吧,我一定是遗漏了一些愚蠢的东西,但我不知道为什么这行不通

    $('#fleet').hover(function(){
        var fleet = '2';
        $("#fleetHover").show();
        $("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
    }, function(){
        $("#fleetHover").hide();
          $("#fleet").animate({ "height": '-=' + (fleet * 30) + 'px' }, "slow");
    });

当我将鼠标悬停在元素上时,它会扩展我需要的高度。但是当我鼠标移开时,它不会返回。

但是,如果我将高度作为一个值而不是一个变量来执行此操作,它就会起作用。

    $('#fleet').hover(function(){
        var fleet = '2';
        $("#fleetHover").show();
        $("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
    }, function(){
        $("#fleetHover").hide();
          $("#fleet").animate({ "height": "-=60px" }, "slow");
    });

我在这里错过了什么?我正在慢慢学习 JS/jQuery 的东西,一个变量不能被多次使用吗?

任何帮助都会很棒!

最佳答案

您的 fleet 变量在第一个匿名函数内部定义并限定在第一个匿名函数内。第二个匿名函数无法访问它。一种解决方案是在两个函数之外定义变量:

var fleet = '2';
$('#fleet').hover(function(){        
    $("#fleetHover").show();
    $("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
}, function(){
    $("#fleetHover").hide();
    $("#fleet").animate({ "height": '-=' + (fleet * 30) + 'px' }, "slow");
});

关于javascript - 悬停切换时的 jQuery Animate 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19143769/

相关文章:

javascript - 打印 HTML 时删除默认的浏览器页眉和页脚

javascript - jQuery keyup 在 IE7 中不起作用

javascript - 如何动态地将div的高度设置为屏幕的高度,直到滚动条到达屏幕底部

javascript - 向多个 Select 元素添加选项

javascript - 单选按钮 angularjs 不起作用

javascript - if/else 语句不适用于页面加载

javascript - 修复 Buggy JQuery 动画

jQuery:选择具有唯一 ID 的所有输入(正则表达式/通配符选择器)

html - 通过 Span 标签进行网页抓取

html - perl:在 Linux 上创建 PDF Avery 标签?