3

我正在使用 jQuery 同位素。我发现了如何在单击后显示文本区域以进行评论时重新布局。

但是我的问题在于 jQuery,当您单击评论按钮时,它会打开页面上的所有评论框,而不是单个评论。

我想知道是否可以将我的 COMMENT_ID 放入脚本中,以便它只打开一个框而不是所有框。

我的代码:(那不起作用)

$('.commentopen').click(function() {
  $('.comment '<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown(1000, function() {
    $('#container').isotope('reLayout');
  });
});

任何帮助表示赞赏。

4

3 回答 3

1

在呈现 HTML 时,如果您为每个评论赋予 href 属性,那么您可以使用 jqueryattr()函数来获取该引用并仅显示该评论。

例如:

$('.comment').click(function() {
    var id = $(this).attr('href');
    $('.comment#' + id).slideDown(1000, function() {
         $('#container').isotope('reLayout');
    });
});

我对您的代码进行了一些更改,以便所有注释都被视为 .comment 类元素。

每条评论也有一个唯一的 ID,因此正确的一张幻灯片打开,所有可用的评论。

这是一个可行的解决方案:http: //jsfiddle.net/HDBwY/

希望能帮助到你。

于 2012-03-25T16:21:10.690 回答
0

你的语法不好。考虑这个片段:

$('.comment '<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown

当您替换 PHP 时,它变为:

$('.comment 'x').slideDown

那里有一个额外的单引号。也许它应该是一磅?

$('.comment #<php echo $LOGGER_ROW['COMMENT_ID'] ?>').slideDown
于 2012-03-26T20:25:29.157 回答
-1
$('.commentopen').click(function() {
    var id = $(this).attr('id');
    $('.comment' + id).slideDown(180, function() {
         $('#container').isotope('reLayout');
    });
});

继承人我最终做了什么(仍然没有工作)我给每个文本区域(.comment)一个id,然后我给评论链接打开textarea(.commentopen)完全相同的id,然后使用这个函数,我获得了与我用于评论相同的 id。在 html 中,它们似乎逐行匹配。但它似乎仍然没有工作。

于 2012-03-26T00:53:20.597 回答