Вопрос

Я знаю, что это довольно просто, но я просто не могу заставить его работать.он продолжает выдавать ошибку «Ожидаемый объект»...

 $(document).ready(function(){   
    setTimeout('showMessage()', 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });
Это было полезно?

Решение

Вы обернули свою функцию в кавычки, поэтому она рассматривает ее как строку, а не как объект, которого он ожидает, поэтому, как сказал Slaks:

 $(document).ready(function(){   
    setTimeout(showMessage, 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });

Другие советы

У вас есть проблема с общенациональной: showMessage() виден только с анонимной функцией, но когда параметр к setTimeout() Оценивается, время выполнения уже оставила прицел.

Используйте функцию непосредственно в качестве аргумента для setTimeout() и избавиться от оценки строки зла [TM]:

setTimeout(showMessage, 1000); 

А setTimeout Метод лучше всего использовать с функцией, а не строкой. Поэтому лучший способ сделать это было бы так:

$(document).ready(function() {
    setTimeout(showMessage, 1000);
});

function showMessage() { 
    alert('abc');
}

Проблема в том, что функция showMessage объявлена ​​внутри события готовности, и setTimeout("showMessage()", 1000) будет искать ее в глобальной области видимости.Вы можете переместить его объявление в глобальную область видимости, например.out ofready или используйте ответ SLaks:setTimeout (showMessage, 1000)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top