0

键入后,我希望数字消失,所以我在 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();         
    }
});
}
4

1 回答 1

2

这是因为 fadeOut 使用 css 不透明度,而 show 使用 css 显示。

基本上,当你这样做时.fadeOut(),你将元素的不透明度降低到 0,然后当你调用 时.show(),什么也没有发生,因为它试图将 display 属性设置为它已经是......不透明度不受影响,并保持在0。

您将希望使用它.fadeIn()来重新显示您的元素。

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

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

于 2013-10-11T01:33:23.520 回答