为什么Jquery只响应第一个元素?

时间:2013-07-30 21:48:42

标签: php jquery reply

我对我的网站发表了评论,其中有一个回复按钮。当点击回复按钮时,弹出一个新的文本框,允许用户回复评论。

对于某些人,如果页面上有多个评论,则回复链接仅适用于其他评论底部的评论。基本上是多个列表中的第一条评论。

我非常肯定与我的点击功能类有关。

这是我的html和php结构:

<a name='reply_form_<?php echo $airwave_comment_row['id']; ?>' style="clear:both"></a>
    <div id='reply_to_<?php echo $airwave_comment_row['id']; ?>' class="respond_structure_future" <?php if(isset($_GET['reply_to']) && $_GET['reply_to'] == $airwave_comment_row['id']) { echo 'style="display:block;"';}else{ echo 'style="display:none;"';} ?>>
        <div class="response_polaroid_future">
            <a href="http://www.cysticlife.org/Profile.php?id=<?php// echo $auth->id; ?>">
                <img src="/styles/images/prof_thumbnail_2.jpg" />
            </a>
        </div>
        <?php                               
        echo validation_errors();
        echo form_open('community/insert_airwaves_comments_replies/'.$this->uri->segment(3));
        ?>
            <div class="respond_body_future">
                <div class="response_arrow_future"></div>
                <div class="response_tail_future"></div>
                <div class="respond_data_future">
                <?php 
                $data = array('name' => 'airwaves_comments_replies', 'id' => 'reply_to'. $airwave_comment_row['id'].'_textarea', 'class' => 'respond');
                echo form_textarea($data, set_value('airwaves_comments_replies'));
                $data = array('type' => 'hidden', 'name' => 'comment', 'value' => $airwave_comment_row['id']);
                echo form_input($data);
                ?>
                <div class="respond_nevermind">
                    <a href="reply_to_<?php echo $airwave_comment_row['id']; ?>">nevermind</a>
                </div>
                <?php
                echo form_submit('sub_comment_reply', 'Reply'); 
                ?>

                </div>
            </div>
        </form>
    </div>

jquery的:

<script type="text/javascript">
$(document).ready( function() {
    $('.scroll').localScroll({ offset:{top:-0,left:0} });
    $("a.reply_link").click( function() {
        $("#"+$(this).attr('name')).fadeIn('slow');
    });

    $(".respond_nevermind a").click( function(event) {
        event.preventDefault();
        var reply_box = document.getElementById($(this).attr('href'));
        $(reply_box).css('display','none');

        var reply_textarea = document.getElementById($(this).attr('href')+"_textarea");
        $(reply_textarea).val('');
    });
});
</script>

提前致谢。

1 个答案:

答案 0 :(得分:0)

click事件处理程序绑定到初始现有元素,但未绑定动态创建的元素。

尝试使用live()on()绑定动态创建的元素。