代码之家  ›  专栏  ›  技术社区  ›  benhowdle89

slideToggle jQuery函数

  •  4
  • benhowdle89  · 技术社区  · 15 年前

    我试图显示一段文字,下面是一个“阅读更多”链接,当我点击链接时,更多的文字应该向下滑动,链接的文字应该读“阅读更少”,然后当他们点击链接时,文字应该向上滑动,链接的文字应该再次“阅读更多”。。

    $('#more').click(function() {
                    $('#the_more').slideToggle("slow", function () {
                          $('#more').html("Read Less");
                        });
    });
    

    有人发现什么问题吗?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Orbling    15 年前

    从我的评论:

    好吧,措辞只在一个方向上改变,所以它永远不会回到“多读”。除此之外,很高兴看到伴随着它的HTML。

    下面是一些代码,在看到HTML之前可能可以工作。

    $('#more').click(function() {
        $('#the_more').slideToggle("slow", function () {
            $('#more').text(function (index, text) {
                return (text == 'Read More' ? 'Read Less' : 'Read More');
            });
        });
    
        return false;
    });
    

    演示: http://jsfiddle.net/yLvms/

    代码的工作方式如下。

    1. 单击事件绑定到 #more 元素,当单击该函数时激发。
    2. 当被解雇时, #the_more 元素上下滑动、切换,这取决于它的可见性状态。
    3. slideToggle() 完成更改文本
    4. 其中的文本 #更多 使用 .text() 函数,将当前文本值传递给函数进行更改。
    5. 文本函数只是 ternary-if 检查文本的当前值 #更多 如果当前是“多读”,则变为“少读”,反之亦然,文本切换。

    希望能有所帮助。