수많은 노드가 숨겨져 Chrome이 멈추는 Chrome/Webkit 71305 버그에 물 렸습니다. Safari에서도 발생합니다. 마크 업의Chrome에서 jQuery로 1500+ 항목을 실시간 필터링하기 위해 해결
jQuery.expr[':'].Contains = function(a, i, m) {
return $.trim((a.textContent || a.innerText || "")).toUpperCase().indexOf(m[3].toUpperCase()) == 0;
};
var input = $('input');
var container = $('ul');
input.keyup(function(e) {
var filter = $.trim(input.val());
if (filter.length > 0) {
// Show matches.
container.find("li:Contains(" + filter + ")").css("display", "block");
container.find("li:not(:Contains(" + filter + "))").css("display", "none");
}
else {
container.find('li').css("display", "block");
}
});
발췌문 :
<input type="text" />
<ul>
<li>
<div>
<span title="93252"><label><input type="checkbox">3G</label></span>
</div>
</li>
</ul>
자바 스크립트가 실행하는 데 걸리는 시간
나는 다음과 드롭 다운 메뉴에있을 것입니다 목록 항목을 필터링하고 무시할 만하다. input
의 텍스트가 삭제 된 후 Chrome에서 요소를 다시 그려야하는 경우입니다. FF6/IE7-9에서는 발생하지 않습니다. http://jsfiddle.net/uUk7S/17/show/
내가 숨어 크롬이 중단 될 수 없습니다 요소를 보여주는 것이 아니라 취할 수있는 다른 방법이 있나요 :
나는이 문제를 설명하기 위해 JSFiddle을했다?ul
을 복제하고 복제본을 처리하고 DOM에서
ul
을 복제본으로 완전히 바꿔 보았습니다.하지만 IE에서이 방법이 훨씬 더 느려지 길 바래요.
'span'요소의 닫는 괄호가 없습니다. 그게 원인 일 수 있니? –
@William, Vim에서 마크 업을 정리할 때 실수 한 것입니다. 나는 바이올린을 해결할 것이지만 문제는 여전히 지속될 것입니다. (특히 다른 브라우저에서 잘 작동하기 때문에). – Soliah