2013-08-14 2 views
0

Допустим, у вас есть 100 000 div внутри родительского div. Плагин jQuery инициализируется всякий раз, когда нажимается любое из этих разделов. Если вы назначаете один класс всем этим div и используете его как селектор, будет ли он резко снижать производительность? Есть ли лучший способ сделать это, чтобы вы каким-то образом локализировали плагин для каждого отдельного div?Назначение селектора jQuery для большого количества divs

+0

Это зависит от того, являются ли эти разделители определенным образом? вы можете использовать n-ые дочерние события щелчка, если знаете, что должен делать конкретный ребенок при нажатии. – Krishna

+0

Wow ... 100000 divs. Просто из любопытства .. какой сайт вы делаете? – putvande

ответ

1

Binding событий на 100000 элементов будет снижение производительности, а не класс (предполагается, что класс есть по умолчанию, не добавленной JavaScript.) Делегирования событий

будет здесь уместно.

$(someParent).on("click","div.someclass",function(){ 
    $(this).somePlugin(); 
}); 
2

Классы не должны резко замедлять работу. Они только накладные - это время, необходимое для того, чтобы прочитать, что у него есть класс, который практически ничего. Действия, которые фактически принимают вычислительную мощность, возникают только при внесении изменений в div. Это произойдет независимо от того, как вы настроили прослушиватель кликов.

Смежные вопросы