Если я запускаю функцию ниже до определения его, я получаю эту ошибку ...Должна ли быть определена функция Javascript до ее вызова?
Uncaught ReferenceError: openModal is not defined
запустить затем определить
$(document).ready(function() {
delay(openModal, 2000);
delay = function (f, t) {
setTimeout(function() {
f();
}, t);
};
openModal = function() {
$('#modal-box').css({
left: $(window).width()/2 - $('#modal-box').width()/2,
top: $(window).height()/2 - $('#modal-box').height()/2
});
$('#modal-box').show();
$('#modal-mask').show();
};
});
Теперь, если я определить функцию первого, а затем вызвать его это работает ... У меня есть опыт работы с PHP, поэтому я привык к возможности доступа к функциям во всем мире, я делаю что-то неправильно или все функции должны быть определены до их использования?
$(document).ready(function() {
delay = function (f, t) {
setTimeout(function() {
f();
}, t);
};
openModal = function() {
$('#modal-box').css({
left: $(window).width()/2 - $('#modal-box').width()/2,
top: $(window).height()/2 - $('#modal-box').height()/2
});
$('#modal-box').show();
$('#modal-mask').show();
};
delay(openModal, 2000);
});
Это все, то есть вы объявили идентификатор 'openModal' (в отличие от его определения) выше этой сферы? например 'var openModal;' – Rup
Связанный: http://stackoverflow.com/questions/261599/why-can-i-use-a-function-before-its-defined-in-javascript – TJHeuvel
@Rup, который является впервые openModal используется – JasonDavis