2012-06-15 2 views
0

Есть ли способ заставить виджеты выводить функции jquery init() в один '$ (document) .ready()'?
Он должен выглядеть следующим образом:jQuery функция init().

$(document).ready(function($) { 
    $('.style1').plugin1Init(); 
    $('.style2').plugin2Init(); 
    $('.style3').plugin3Init(); 
}); 

Я спрашиваю, потому что я пытаюсь ускорить свою WordPress тему. У меня есть несколько виджетов, которые выводят код jquery в функциях $ (document) .ready().

Три '$ (документ) .ready() функции снижает скорость загрузки страницы почти в три раза согласно Jquery speed test

Пример кода на странице, когда я использую 3 виджеты:

$(document).ready(function($) { 
    $('.style1').plugin1Init(); 
}); 

$(document).ready(function($) { 
    $('.style2').plugin2Init(); 
}); 

$(document).ready(function($) { 
    $('.style3').plugin3Init(); 
}); 
+6

Имея многократный * document ready * blocks не является проблемой вообще. Существует только одно событие, которое вызовет все зарегистрированные функции в цикле. Если ваша страница загружается медленно, это связано с чем-то другим. – ThiefMaster

+0

_if_ вы ссылаетесь на тест, убедитесь, что [вы проверяете последний] (http://jsperf.com/docready/10) – Wrikken

ответ

1

Вы можете позвонить $(document).ready(function($) { раз

См:

$(document).ready(function($) { 
    $('.style1').plugin1Init(); 
    $('.style2').plugin2Init(); 
    $('.style3').plugin3Init(); 
}); 
Смежные вопросы