2013-08-13 3 views
0
function sayHello(name) 
    { 
     var prompt = "Hello, " + name + "!"; 
     function asd() 
     { 
      alert(prompt); 
     } 
    } 

Этот код не работает. У меня есть файл HTML с кнопкой, которая имеет onClick='sayHello("MyName")'. Он не работает, если я не добавлю setTimeout(asd, 0); после внутренней функции. Любая идея почему (или что я делаю неправильно)? Я только начинаю JS, и это очень странно для меня.Функция JavaScript не работает, если она не установленаTimeout

ответ

3

Не забудьте использовать функцию .

function sayHello(name) { 
    var prompt = "Hello, " + name + "!"; 
    function asd() { 
     alert(prompt); 
    } 
    asd(); // invoke 
} 
+0

Или просто избавиться от внутренней функции в целом ... – nnnnnn

+0

@nnnnnn true. Я чувствую, что этот код вряд ли будет конечной целью OPs, поэтому я сохранил его –

+1

Спасибо, не подумал об этом. Сейчас отлично работает :) Также я знаю, что я мог избавиться от него, но я тестировал области, потому что они не похожи на другие языки программирования. Еще раз спасибо! –

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