2013-09-25 2 views
0

В настоящее время у меня есть следующий код для добавления лайтбокса в ссылки, содержащие rel="facebox".jQuery срабатывание при загрузке страницы

$(document).ready(function() { 
    $('a[rel*=facebox]').facebox(); 
}); 

Это хорошо работает, пока страница не загружается слишком долго.

Как применить это до загрузки документа? В идеале я хотел бы сначала вызвать функцию .facebox(), а при загрузке DOM он ищет любую ссылку с rel="facebox" и применяет эту функцию.

Вид как .on() Функция, но без события.

Это имеет смысл? Заранее спасибо!

+1

Вы не можете позвонить ему до того, как DOM готов, этот селектор не будет соответствовать чему-либо тогда! – tymeJV

+1

@tymeJV Вы можете разместить JS непосредственно после элемента HTML, и его можно будет выбрать до того, как произойдет событие 'document.ready'. Это довольно распространенная практика ускорения рендеринга тяжелых сайтов JS. Скорее всего, вы захотите использовать встроенную JS, а не как фреймворк вроде jQuery, потому что вам не придется ждать загрузки jQuery ... – Jasper

+0

вы можете отложить загрузку страницы с помощью setInterval(). Таким образом, вы можете сначала запустить свою функцию, а затем отобразить страницу. –

ответ

0

Найдено мое решение, выполнив следующие действия:

$(document).on('click', 'a[rel*=facebox]', function() { 
    $.facebox({ ajax: $(this).attr('href') }); 
    return false; 
}); 

Надежда, что помогает кому-то ,

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