Добрый день!
Есть подобный кусок кода:
(function ($) {
// build new menu markup
var $fn = $('<div />', {id: 'our-unique-id'})
.wrapInner('<div class="inner-wrap"><nav/></div>');
// .. do something with it ..
$fn.appendTo($('body'));
})(jQuery);
(function ($) {
var $el = $('#our-unique-id'); // А НАЙДЕТ ЛИ?
})(jQuery);
То есть суть такова, что мы внутри одной функции создаем элемент, помещаем его в конец body(без всяких коллбэков), затем внутри второй уже обращаемся к этому элементу. Вопрос следующий - будет ли работать?
Учитывая асинхронность JS могу предположить, что обе функции в какой-либо ситуации запустятся одновременно и вторая будет запрашивать элемент тогда, когда первая его еще физически не создала.