在jQuery中附加表单有问题

时间:2009-12-23 23:44:20

标签: javascript jquery html forms

这是我的代码:

$('.reply').click(function() {
    $leftwrap = $(this).parent();
    $comment = $(leftwrap).parent();
    $id = $comment.attr('id');
    if($(this).siblings('.reply-form').length == 0) { //check whether or not the form as been initiated yet
    $(this).parent().append('<?php $replytimestamp = strtotime("now"); ?>
    <form class="reply-form" action="/scripts/reply-process.php" method="post">
    <input type="hidden" name="replytimestamp" value="<?php echo $replytimestamp; ?>">
    <input type="hidden" name="replyto" value="'+ $id +'">
    <label for="name" class="reply-label">Name</label>
    <input type="text" name="name" class="reply-input">
    <label for="message" class="reply-label">Reply</label>
    <textarea name="message"class="reply-ta"></textarea>
    <input class="reply-submit" type="submit" name="submit" value="submit" />
    </form>'); 
    $(this).siblings('.reply-form').hide();
    $(this).siblings('.reply-form').slideDown();
} else  $(this).siblings('.reply-form').slideToggle(); //if it is, toggle it

}); 

当我点击“.reply”时,没有任何事情发生,没有幻灯片,没有。我在Firebug中找不到任何东西。那么任何想法是什么了?谢谢!

1 个答案:

答案 0 :(得分:2)

我建议总是在if语句中使用括号,但无论如何,问题出在这里:

$leftwrap = $(this).parent();
$comment = $(leftwrap).parent();

如果你打算这样做,那就需要:

$leftwrap = $(this).parent();
$comment = $leftwrap.parent();

$变量不是魔术,它是变量名的一部分,所以你必须包含它。