在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();
}
});
}
答案 0 :(得分:2)
这是因为fadeOut使用css opacity,而show使用css display。
基本上,当你执行.fadeOut()
时,你将元素的不透明度降低到0,然后当你调用.show()
时,没有任何反应,因为它试图将显示属性设置为它已经......不透明度不受影响,并保持在0。
您需要使用.fadeIn()
将元素重新显示。
另一方面,.show()
应与.hide()
配对,并将显示设置为“无”。