为了账号安全,请及时绑定邮箱和手机立即绑定

jq 动画效果,为什么下拉可以实现,收回就没有反应了

jq 动画效果,为什么下拉可以实现,收回就没有反应了

$(function(){     $("#more1").on("click",function(){         if($(this).text="更多"){             var selectSupplier = $("#select1").height();             $(".select-supplier").animate({height:selectSupplier});             $(this).text("收起");         }else{             $(".select-supplier").animate({height:"24px"});             $(this).text("更多");         }     }) })
查看完整描述

3 回答

已采纳
?
橋本奈奈未

TA贡献436条经验 获得超108个赞

$(this).text() 才是返回文本。

查看完整回答
反对 回复 2017-09-15
?
王益达

TA贡献12条经验 获得超15个赞

$(function(){
    $("#more1").on("click", function () {
        if ($(this).text() === "更多") {
            var selectSupplier = $("#select1").height();
            $(".select-supplier").animate({height: selectSupplier});
            $(this).text("收起");
        } else {
            $(".select-supplier").animate({height: "24px"});
            $(this).text("更多");
        }
    })
});

姑娘,注意代码规范,能避免很多错误。

问题:

  1. 取元素文本是 text() 方法

  2. 相等运算符是 ==, 建议用 ===,用 = 是赋值

  3. 现在已经 ES 7 时代了,要学习 ES6+ 语法

修改后:

$(function(){
    const $selectSupplier = (".select-supplier");
    const initHeight = '24px';
    const selectHeight = $("#select1").height();
    $('#more1').on('click', function () {
        const isShow = $(this).text() === '更多';
        $selectSupplier.animate({height: isShow ? selectHeight : initHeight});
        $(this).text(isShow ? '收起' : '更多');
    });
});


查看完整回答
1 反对 回复 2017-09-15
?
yeheyt

TA贡献12条经验 获得超4个赞

if条件写错了 比较要用 == 或 ===

单个=是赋值

查看完整回答
反对 回复 2017-09-15
?
FSYu

TA贡献152条经验 获得超59个赞

if语句里面应该是 == 吧!没有报错吗

查看完整回答
反对 回复 2017-09-15
  • 3 回答
  • 0 关注
  • 2615 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信