2015-01-06 2 views
1

Я довольно неопытный с JavaScript, поэтому я действительно не знаю, что я делаю неправильно.Является ли область изменена здесь или это что-то еще?

Это отлично работает:

myarray = []; 

myarray.push(1); 

Это отлично работает слишком:

myarray = []; 

function example(){ 
    myarray.push(1); 
} 

example(); 

Это не работает на всех:

myarray = []; 

function example(){ 
    myarray.push(1); 
} 

$(window).load(function(){ 
    example(); 
}); 

ли я изменение объема или что-то с $(window).load(function(){...?

Как я могу сделать example() выполнить как он сделал во втором фрагменте в третьем фрагменте?

+1

Действительно ли вы загрузили jQuery? –

+0

он должен работать. Добавьте jquery file.see свою ошибку в консоли, если она есть. –

+0

Я не могу воспроизвести вашу проблему: http://jsbin.com/refegiviho/1/ (после добавления предупреждения, чтобы было обнаружено значение массива) – Quentin

ответ

1

Событие window.onload запускается при загрузке полной DOM, поэтому в третьем случае пример() будет запущен позже, а другой код будет работать раньше.

я воспроизвел вашу проблему и может быть я неправильно, но ниже это работает код, что я наблюдал

myarray = []; 

function example(){ 
    myarray.push(1); 
} 

$(window).load(function(){ 

    example(); 
}); 

setTimeout(function() { 
    console.log(myarray); 
},100); 

Если у вас есть что-то еще, пожалуйста ответили на свой вопрос ... Я заинтересован, чтобы узнать глубже около

+0

Я потратил буквальные часы, пытаясь понять, что я делаю неправильно, и все это время я забыл об этом. Огромное спасибо. – James

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