我正在使用jQuery同位素。我在点击它显示textarea以进行评论后发现了如何重新布局。
但是当我点击评论按钮时,我的问题在于jQuery,它会打开页面上的所有评论框而不是单个评论。
我想知道是否可以将我的COMMENT_ID放在脚本中,以便它只打开一个盒子而不是所有盒子。
我的代码:(不起作用)
$('.commentopen').click(function() {
$('.comment '<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown(1000, function() {
$('#container').isotope('reLayout');
});
});
感谢任何帮助。
答案 0 :(得分:1)
在渲染HTML时,如果您为每个注释指定一个href属性,那么您可以使用jquery attr()
函数来获取该引用并仅显示该注释。
例如:
$('.comment').click(function() {
var id = $(this).attr('href');
$('.comment#' + id).slideDown(1000, function() {
$('#container').isotope('reLayout');
});
});
我稍微更改了您的代码,以便将所有注释视为.comment类元素。
每条评论都有一个唯一的ID,因此正确的评论可以打开所有评论。
这是一个有效的解决方案:http://jsfiddle.net/HDBwY/
希望它有所帮助。
答案 1 :(得分:0)
你的语法很糟糕。请考虑以下代码段:
$('.comment '<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown
当您替换PHP时,它变为:
$('.comment 'x').slideDown
那里有一个额外的单引号。也许它应该是一磅呢?
$('.comment #<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown
答案 2 :(得分:-1)
$('.commentopen').click(function() {
var id = $(this).attr('id');
$('.comment' + id).slideDown(180, function() {
$('#container').isotope('reLayout');
});
});
继续我最终做的事情(仍然没有工作)我给每个文本区域(.comment)一个id,然后我给了注释链接打开textarea(.commentopen)完全相同的id,然后使用这个函数,我获得了与我用于评论相同的id。并且在html中,它们似乎匹配行。但它仍然似乎工作。