0

编辑

JQUERY-AJAX 请求代码:

<script type="text/javascript">
$(document).ready(function(){
$(".form").submit( function(e) {
    e.preventDefault();
    var form = $(this);
    var div_add_comment = $(form).parent();
    var div_comments = $(div_add_comment).parent();
    $.ajax({
        type: "POST",
        data: $(form).serialize(),
        url: "includes/comment.php",
        success: function(msg){
            $(div_comments).html(msg);
        }
    });
    return false;
});
});
</script>

JQUERY 显示全部 - 折叠评论代码

<script type="text/javascript">
$(document).ready(function(){
$('.see_all').click(function(){
    var thisItem = $(this);
    thisItem.parent().find('#comment2').slideDown('fast');
    thisItem.parent().find('.collapse').css('display','inline-block');
    thisItem.css('display','none');
    return false;
}); 

$('.collapse').click(function(){
     var thisItem = $(this);
     thisItem.parent().find('#comment2').slideUp('fast');
     thisItem.css('display','none');
     thisItem.parent().find('.see_all').css('display','inline-block');
     return false;
})
})
</script>

JQUERY删除焦点上的默认值文本 - TEXTAREA

<script type="text/javascript">
$(document).ready(function(){
var Input = $('textarea[name=comment]');
var default_value = Input.val();

$(Input).focus(function() {
    if($(this).val() == default_value)
    {
         $(this).val("");
    }
}).blur(function(){
    if($(this).val().length == 0)
    {
        $(this).val(default_value);
    }
});
})
</script>

如果您需要其他任何东西,请告诉我,我有最宝贵的时间在这些帖子中复制代码并对其进行格式化。

结束编辑

我有一个奇怪的小问题。我创建了一个 jquery-ajax 函数来从我的页面的评论部分传输数据。该页面在每个用户帖子下都有一个此表单的实例。所以这个页面会有 X 个帖子,每个帖子有 X 个评论,就像一个社交网络。我的 ajax 请求完美地发送、接收和显示数据但是我还有另外两个调用内部元素的 jquery 函数,这些函数在 ajax 函数返回 html 后不再起作用。ajax 函数未处理的所有其他函数仍然有效。我已经检查并重新检查了来自 ajax 函数的响应 html,它与标准 post-comment 实例的 html 相同。

如果您有任何疑问,请告诉我您想看什么。

谢谢,您的帮助总是值得赞赏的!

4

2 回答 2

2

确保以元素不必存在的方式绑定 jQuery 函数。

$('ul').on('click', 'li', function(){ /* do something */ });

这将在函数绑定后添加的 LI 上执行。

在您的情况下,您希望绑定到评论部分的父级并定位具有点击行为的元素。

$('.comments')
    .on('click', '.see_all', function(){...})
    .on('click', '.collapse', function(){...})
    .on('focus', 'textarea[name=comment]', function(){...})
    .on('blur', 'textarea[name=comment]', function(){...})
于 2013-02-13T21:13:48.510 回答
0

尝试从表单中删除 $()。

你有这个:

var form = $(this);
    var div_add_comment = $(form).parent();
    var div_comments = $(div_add_comment).parent();

应该是这样的:

var form = $(this),
    div_add_comment = form.parent(),
    div_comments = $(div_add_comment).parent();

既然你声明了 var form = $(this); 你不需要包装表单......你现在拥有它的方式相当于$((form))

不确定这是否会解决您的问题,但 jQuery 可能会挂断此问题,因为您正在从 $(this) 生成子项。

于 2013-02-13T21:44:35.473 回答