首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery切换的替代方式?

jQuery切换的替代方式?
EN

Stack Overflow用户
提问于 2013-11-05 02:48:21
回答 3查看 1.2K关注 0票数 1

由于切换已被弃用,因此我使用此命令来搜索div:

代码语言:javascript
复制
$("#syndicates_showmore").on("click", function () {

    if (!clicked) {
        $('#syndicates').fadeTo('slow', 0.3, function () {
            $(this).css(
            {
                'height': 'auto',
                'overflow': 'none'
            });
        }).fadeTo('slow', 1);

        setTimeout(function () {
            $("#syndicates_showmore").text("Show less");
        }, 500);

        clicked = true;
    }
    else {
        $('#syndicates').fadeTo('slow', 0.3, function () {
            $(this).css(
            {
                'height': '290px',
                'overflow': 'hidden'
            });
        }).fadeTo('slow', 1);

        setTimeout(function () {
            $("#syndicates_showmore").text("Show more");
        }, 500);

        clicked = false;
    }
});

有没有更干净的方法来做这件事?

EN

回答 3

Stack Overflow用户

发布于 2013-11-05 02:55:09

根据jQuery 1.9 Upgrade Guide的说法

函数.toggle(

,function,... )已删除

这是.toggle()的“点击一个元素即可运行指定函数”的签名。它不应该与.toggle()的“更改元素的可见性”相混淆,后者并未被弃用。前者正在被移除,以减少混淆并提高库中模块化的可能性。jQuery Migrate插件可用于恢复功能。

换句话说,您仍然可以像这样使用.toggle

代码语言:javascript
复制
var clicked = false;
$("#syndicates_showmore").on("click", function () {
    clicked = !clicked;
    var showText = "Show " + (clicked ? "more" : "less");
    $('#syndicates').toggle(function () {
        $("#syndicates_showmore").text(showText);
    });
});
票数 1
EN

Stack Overflow用户

发布于 2013-11-05 02:54:52

最好的选择是使用.toggleClass()

代码语言:javascript
复制
$("#syndicates_showmore").on("click", function () {
    $('#syndicates').toggleClass("newClass, 1000", "easeInOutBounce")
});

描述:根据类的存在或开关参数的值,在匹配元素集中的每个元素中添加或删除一个或多个类。

如果使用jQuery UI,则可以使用不同的缓动选项轻松地为其设置动画。

缓动功能指定动画在动画中的不同点上进行的速度。jQuery UI提供了几个附加的缓动功能,范围从swing行为的变化到自定义效果(如弹跳)。

Example online

票数 0
EN

Stack Overflow用户

发布于 2013-11-05 02:57:19

摘自jQuery API

代码语言:javascript
复制
$("#clickme" ).click(function() {
   $( "#book" ).toggle( "slow", function() {
     // Animation complete.
   });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19774843

复制
相关文章

相似问题

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