您好我试图提出用于显示隐藏comment-id特定textareas的代码。
我已经成功地为页面加载时的每个评论分配了一个文本区域,然后在点击时隐藏和显示。但我不知道如何再次隐藏它们。这是我到目前为止所提出的:
$('#show-reply-comment').each(function(){
$(this).click(function(e){
e.preventDefault();
var commentid = $(this).data('commentid');
$('#'+commentid+'').show();
$(this).unbind('click');
$(this).attr('id', 'hide-reply-comment');
});
});
$('#hide-reply-comment').each(function(){
$(this).click(function(e){
e.preventDefault();
var commentid = $(this).data('commentid');
$('#'+commentid+'').hide();
$(this).unbind('click');
$(this).attr('id', 'show-reply-comment');
});
});
用户应该能够同时打开多个评论 - 回复文本。如果有人能给我一个如何继续的提示,我将不胜感激。
编辑:我忘记了返回虚假;但我不想弄乱代码
答案 0 :(得分:3)
jQuery #id
选择器只返回第一个匹配的元素。
您应该使用.class
选择器返回所有匹配的元素。
答案 1 :(得分:1)
您可以简单地用
替换整个代码,而不是尝试更改元素的ID并重复绑定和取消绑定事件处理程序。$('.show-hide-reply-comment').click(function(){
var commentid = $(this).data('commentid');
$('#'+commentid).toggle();
});
请注意,我通过使用“show-hide-reply-comment”类替换了对您的按钮使用Id,因为Id只能被赋予一个元素。
答案 2 :(得分:1)
如前所述,#id必须是唯一的。但它不仅相对于jquery,它相对于javascript。只有css不关心唯一ID选择器。这当然不会使它有效......