해당 링크의 href가 특정 확장명을 가진 파일을 가리키는 경우 페이지의 모든 링크에 click() 이벤트를 적용하고 싶습니다. 적용 가능한 확장 기능의 목록은 약 30 개가 넘고 미래에는 약간 증가 할 수 있습니다 (단, 100 개를 넘지는 않습니다). 이 미친많은 선택기를 사용할 때 jQuery 성능이 얼마나 저하됩니까?
$("a[href$=avi],
a[href$=ppt],
a[href$=rtf],
// ...snip a bunch more of these....
a[href$=pdf],
a[href$=xml]").click(function() {
// Do something
});
:
내 첫 성향과 같이 바인딩 이벤트를 구성하는 것입니다?
이것은 모든 링크에 클릭 핸들러를 추가,하지만. href가 일치하지 않으면 아무 일도하지 않는다는 것입니다. 일치하는 링크에만 핸들러를 적용하는 솔루션이 더 좋을 것입니다. 내 필터 예제를 참조하십시오. – tvanfosson
@tvanfosson :이 메소드는 불필요한 바인딩을 수행하지만, jQuery는 여전히 switch-case보다 느린 추가 구문 분석 및 트래버스를 수행해야한다. 따라서 성능이 현명하므로이 방법이 더 좋습니다. –