jQuery setTimeout on Append

时间:2012-09-26 13:52:13

标签: jquery

我正在尝试在jQuery中为以下append方法设置超时。我尝试过的所有内容都会继续Uncaught SyntaxError: Unexpected identifier

这是我的代码:

    setTimeout("$('#user-comments').append('<div class='video_comment'>
<div class='name'>David</div><div class='time'>test</div>
<div class='indiv-comment'><p>'"+message+"'</p></div></div><hr class='gray' />')",3000);

感谢任何帮助。

2 个答案:

答案 0 :(得分:7)

setTimeout(function () {
    $("#user-comments").append('<div class="video_comment">
                                <div class="name">David</div>
                                <div class="time"><?php echo date('F j, Y, g:i a'); ?></div>
                                <div class="indiv-comment"><p>' + message + '</p></div></div>');
}, 3000);

答案 1 :(得分:0)

首先,在javascript中,换行可能会很麻烦。正如尼尔所说,你需要摆脱你的引号。有时分解更长的字符串会使其更具可读性。此外,您可以为setTimeout而不是字符串提供函数。这是一个例子:

setTimeout(function() {
    var nameTag = '<div class="name">David</div>';
    var timeTag = '<div class="time">test</div>';
    var commentTag = '<div class="indiv-comment"><p>' + message + '</p></div>';
    var wrap = '<div class="video_comment">' +
                   nameTag +
                   timeTag +
                   commentTag +
               '</div><hr class="gray" />';

    $('#user-comments').append(wrap)
}, 3000);

通过这种方式,您可以清楚地看到哪个引号开始和结束在哪里,您根本不必为字符串中的换行符而烦恼。