當鏈接的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 2009-12-03 23:14:55
@tvanfosson:你說得對,這個方法做了一些不必要的綁定,但在你的方法中,jQuery仍然需要做一些額外的解析和遍歷,這總是比開關大小慢。所以,性能方面,這種方法更好。 – 2009-12-04 10:20:25