修改
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 SHOW ALL - 坍塌评论代码
<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相同。
请告诉我您希望看到的内容或是否有疑问。
谢谢,我们非常感谢您的帮助!
答案 0 :(得分: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(){...})
答案 1 :(得分: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); ,因此您无需打包表单...现在如何使用它等同于 $((表单))
不确定这是否能解决你的问题,但jQuery可能会因为你从$(这个)产生孩子而被挂起。