javascript - 这里如何使用Jquery滑动切换?

标签 javascript jquery

我这里有这段代码:

$(document).ready(function () {
  $(".toggle").click(function () {
    //$(".readmore").slideToggle();
    $(".readmore").toggle();
    $(this).text(function(){return $('.readmore:visible').length?'Read less':'Read more'});
  }).triggerHandler('click');
});

我想要点击“阅读更多”时有一个滑动切换效果,但是一旦我用滑动切换替换切换,它就停止工作。请问有什么想法吗?

最佳答案

.toggle(): with no parameters simply toggles the visibility of elements

相反,.slideToggle()需要动画时间才能完成。这意味着您需要使用 complete 回调:动画完成后调用的函数。

因此,当您在slideToggle之后测试可见性时,它不起作用,因为该值仅在超时后更改,而使用toggle它很快就会更改。由于这种延迟,您需要等待动画完成才能执行代码。

在下面的代码片段中:

$(".toggle").on('click', function (e) {
    $(this).nextAll(".readmore:first").slideToggle(400, function() {
        $(e.target).text($('.readmore:visible').length?'Read less':'Read more');
    });
});

$(".readmore").toggle();
$('.toggle').text($('.readmore:visible').length?'Read less':'Read more');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<button class="toggle">Read more</button><br/>
<div class="readmore">
blah blah blah
</div>
<button class="toggle">Read more</button><br/>
<div class="readmore">
blah blah blah
</div>

关于javascript - 这里如何使用Jquery滑动切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889653/

相关文章:

javascript - Caroufredsel 响应式可见项目

javascript - 如何在不设置 setInterval 的情况下激活我的进度条

jquery - 无法使用 jquery 设置隐藏输入值

jquery - 正确突破 jquery $.each() ——这是浏览器问题吗?

javascript - Ajax Tooltip - 绕过所以不使用 bootstrap

javascript - iframe 加载多次

javascript - 使用node.js和socket.io在Heroku上发布应用程序

javascript - 谷歌地图错误: InvalidKeyOrUnauthorizedURLMapError

javascript - Extjs 4仪表图表,如何动态更改最大限制值?

javascript - 如何告诉 jQuery 仅在两个特定网页上运行某个函数?