slideToggle jQuery函数
我正在尝试显示一段文字,然后在下面是一个“阅读更多”链接,当我点击链接时,更多的文本应该向下滑动,链接的文本应该是“Read less”,然后当他们点击它时,文本应该向上滑动,链接文本再次“读取更多”。
$('#more').click(function() { $('#the_more').slideToggle("slow", function () { $('#more').html("Read Less"); }); });
有人发现任何问题?
从我的评论:
好吧,措辞只在一个方向改变,所以它永远不会回到“阅读更多”。 除此之外,很高兴看到随之而来的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/
代码的工作原理如下。
- click事件绑定到
#more
元素,单击该函数时会触发。 - 触发后,
#the_more
元素会向上或向下滑动,切换,具体取决于它的可见性状态。 - 完成
slideToggle()
后更改文本时会触发回调 -
#the_more
的文本使用.text()函数的函数变量进行更改,这会将当前文本值传递给函数进行更改。 - 文本函数只是一个三元 – 如果它检查
#the_more
本的当前值,如果它当前是’Read More’则变为’Read Less’,反之亦然,即文本的切换。
希望有所帮助。