Почему мой код JavaScript не работает? - PullRequest
0 голосов
/ 26 октября 2011

Я получаю сообщение об ошибке «Синтаксическая ошибка: неожиданный идентификатор» с этим кодом:

function hashStuff() {
    var messageID = window.location.hash.replace('#inbox-', '');
    var msgSubject = $('#subject_' + messageID).html();
    setTimeout("readMessage2(" + messageID + ", " + msgSubject + ");", 300);
}
if (window.location.hash) {
    setTimeout("hashStuff();", 400);
}

Я также пытался:

if (window.location.hash) {
    function hashStuff() {
    var messageID = window.location.hash.replace('#inbox-', '');
    var msgSubject = $('#subject_' + messageID).html();
    setTimeout("readMessage2(" + messageID + ", " + msgSubject + ");", 300);
}
    setTimeout("hashStuff();", 400);
}

Ни одна из них не работает.

То, что я пытался сделать, это получить информацию от элементов, но я думаю, что страница еще не была загружена, поэтому мне нужно, чтобы она запускалась через секунду.Я поместил его в функцию, чтобы я мог использовать тайм-аут, и он не будет работать.

Есть идеи?Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 26 октября 2011

Если ваш messageID - что-то вроде 1234, а msgSubject - Hello World, то вычисляемый оператор:

readMessage2(1234, Hello World);

Что, очевидно, является неправильным и вызывает ошибки.

Правильный код:

setTimeout( function() {readMessage2(messageID,msgSubject);}, 300);
2 голосов
/ 26 октября 2011

Вы можете запустить скрипт внутри $(document).ready(function() {//script here});.Это обеспечит его запуск после загрузки всех элементов.

0 голосов
/ 26 октября 2011

попробуйте обернуть ваш код внутри ready блока:

$(document).ready(function () {
    //your code
});
...