slideToggle 和 toggleClass 不能一起工作?
slideToggle and toggleClass not working together?
我正在尝试使用 slideToggle,然后再使用 toggleclass,但是通过添加 toggleclass,slideToggle 不会 'slide' 有人知道我该如何解决这个问题吗?
fiddle 和下面的代码。
$(function () {
$(".expand").on("click", function () {
$(this).next().slideToggle().toggleClass('slidein');
$expand = $(this).find(">:first-child");
if ($expand.text() == "\u25B6") {
$expand.text("\u25BC");
} else {
$expand.text("\u25B6");
}
});
});
它工作得很好,但是你隐藏了元素然后添加了 class,所以你看不到 toggleClass
。
你在CSS文件和JS的逻辑上有一些错误。
删除 CSS3 个转换,它将正常工作。
transition: all 1s ease-in-out;
最后,对没有toggle
方法的代码进行排序,像这样:
$(function () {
$(".expand").on("click", function () {
if( $(this).parent().find('.detail').css('display') == 'block' ){
$(this).parent().find('.detail').slideUp();
$(this).parent().find('#titles').animate({'left' : -200});
} else {
$(this).parent().find('.detail').slideDown();
$(this).parent().find('#titles').animate({'left' : 0});
}
});
});
查看我的工作演示:JSBIN。这是你需要的吗?
我正在尝试使用 slideToggle,然后再使用 toggleclass,但是通过添加 toggleclass,slideToggle 不会 'slide' 有人知道我该如何解决这个问题吗?
fiddle 和下面的代码。
$(function () {
$(".expand").on("click", function () {
$(this).next().slideToggle().toggleClass('slidein');
$expand = $(this).find(">:first-child");
if ($expand.text() == "\u25B6") {
$expand.text("\u25BC");
} else {
$expand.text("\u25B6");
}
});
});
它工作得很好,但是你隐藏了元素然后添加了 class,所以你看不到 toggleClass
。
你在CSS文件和JS的逻辑上有一些错误。 删除 CSS3 个转换,它将正常工作。
transition: all 1s ease-in-out;
最后,对没有toggle
方法的代码进行排序,像这样:
$(function () {
$(".expand").on("click", function () {
if( $(this).parent().find('.detail').css('display') == 'block' ){
$(this).parent().find('.detail').slideUp();
$(this).parent().find('#titles').animate({'left' : -200});
} else {
$(this).parent().find('.detail').slideDown();
$(this).parent().find('#titles').animate({'left' : 0});
}
});
});
查看我的工作演示:JSBIN。这是你需要的吗?