以下
https://github.com/cowboy/jquery-message-queuing/
は、あなたの助けのすべてに感謝します。私はBen Claytonの回答に基づいたソリューションを考え出しましたが、まだアイを探してthg435ソリューションを調査しています。すべてのコメントは評価されます。
<script type="text/javascript">
$(document).ready(function() {
var cache = $(".whatever");
var wait = 0;
var input = $("#input");
var regex = null;
input.keyup(function (e) {
go.index = 0;
clearTimeout(wait);
wait = setTimeout(go.start, 500);
});
var filter = function (i) {
var one = cache.eq(i - 1);
one.text().match(regex) ? one.show() : one.hide();
go.index++;
setTimeout(go.filter, 10);
};
go = {
index: 0,
filter: function() {
go.index == 0 || go.index > cache.length ? null : filter(go.index);
},
start: function() {
go.index = 1;
var search = input.val();
search = search.replace(new RegExp("[a]", "gi"), "[aàáâã]");
search = search.replace(new RegExp("[e]", "gi"), "[eéê]");
search = search.replace(new RegExp("[i]", "gi"), "[ií]");
search = search.replace(new RegExp("[o]", "gi"), "[oóô]");
search = search.replace(new RegExp("[u]", "gi"), "[uú]");
search = search.replace(new RegExp("[c]", "gi"), "[cç]");
regex = new RegExp(search, "gi");
go.filter();
}
}
});
</script>
<input type="text" id="input" />
<span class="whatever">lalala</span>
<span class="whatever">leléLÉ</span>
<span class="whatever">lololo</span>
<span class="whatever">lululu</span>
jsFiddleの例では、番号が「3」のときにブラウザがフリーズします。 –
重複した質問のあなたのコメントは、 "ここでは狂っている人もいます...フィルタ()関数の詳細は無関係です" *しかし、どのようにして最初のバージョンと2番目のバージョンの間のパフォーマンスを向上させましたか?それは 'フィルター'に入ったのですか?はい。私が狂ったことをもう一度教えてください。 –
thg、その解決策は私が書いたものと同じですが、よりスマートな方法で行いますので、私はそれを使用します。ありがとうございました。 –