jQuery .fadeOut()然后.show();没有使用keyup

时间:2013-10-11 01:19:40

标签: javascript jquery html css html5

在keyup之后,我希望数字消失,所以我尝试了if中的.fadeOut()和else上的.show()。问题是它们在淡出后不会显示出来。

    $('input').keyup(function() {
filter(this);

});

function filter(element) {
var value = $(element).val();

$("#sortable > li").each(function () {
    if ($(this).text().indexOf(value) > -1) {
        $(this).show();
        $(".number").fadeOut();
        $(".numberstwo").fadeOut();

        // $('#sortable').addClass("disable");
       // $("#sortable").draggable('disable');

    } else {
        $(this).hide();
        $(".number").show();
        $(".numberstwo").show();         
    }
});
}

1 个答案:

答案 0 :(得分:2)

这是因为fadeOut使用css opacity,而show使用css display。

基本上,当你执行.fadeOut()时,你将元素的不透明度降低到0,然后当你调用.show()时,没有任何反应,因为它试图将显示属性设置为它已经......不透明度不受影响,并保持在0。

您需要使用.fadeIn()将元素重新显示。

http://api.jquery.com/fadeIn/

另一方面,.show()应与.hide()配对,并将显示设置为“无”。