ОК, это было сложно описать в названии. Что у меня есть поле ввода и три пункта [будет ссылаться на них как «Ps»]фильтровать элементы, не содержащие строку поиска [есть решение, ищет улучшения]
<p>ABCD</p>
<p>CDEF</p>
<p>XYZ</p>
теперь, когда кнопка нажата в поле ввода абзацы, которые не содержат строку поиска отфильтрованы hide()
. Совершено следующим:
$("input").keyup(function(){
var x = $(this).val();
$("p:not(:contains('" + x + "'))").hide();
});
когда забой или удалить нажимается Ps, которые не содержат строку поиска получить снова show()
показано, как это:
$("input").keydown(function(){
var x = $(this).val();
var key = event.keyCode || event.charCode;
if(key == 8 || key == 46){
$("p:not(:contains('" + x + "'))").show();
}
});
Теперь это вызывает странное поведение. Я очень плохо объясняя это .. Для того, чтобы получить то, что я говорю следующие шаги в этом fiddle result
мыши в поле ввода
типа «ABC» [сразу же после ввода ' а»последние два Ps скрыты]
- типа„х“[поэтому вход теперь„abcx“и первый P был скрыт]
- нажмите Backspace и уделять пристальное внимание [все Ps показаны для сплит-секунда, и после этого только первый остается в виде inte nded]
Вот full JSFiddle
Итак, что я хотел бы знать, если есть в любом случае, чтобы не было все Ps показано, что на долю секунды, и только что первый P отображается, когда забой нажата.
Итак, когда вы удаляете 'x' из' abcx', что вы ожидаете от своего вывода? – void
oh snap, не знал, что существует. Я подумал, что если вы можете ответить на свои вопросы, чтобы поделиться знаниями, это не будет проблемой здесь. Но я, вероятно, верну его завтра, если на это не назовут ответ. –
@извините, что это такое. первые абзацы, но без двух других, показывающих как 500 мс. Я забыл сказать, что в вопросе я просто добавил его в полужирное. Сожалею. –