0

我在 Rails 应用程序中的每个用户个人资料页面 /views/users/show.html.erb 上都有来自 Question 模型的项目列表。项目列表是您希望在 /views/questions/index.html.erb 中找到的信息。我已经对其进行了安排,以便当用户单击显示链接时,它会在同一页面 /views/users/show.html/ 中显示内容。如果用户单击另一个显示链接,它只是将显示的内容替换为下一个链接单击的问题的 id。但是,用户点击show后,无法取消关闭数据,除非用户刷新主页等;因此,一旦用户单击显示链接(假设有 10 个链接的列表),我希望能够在单击的条目旁边显示一个链接(而不是列表中的 9 个)t) 允许用户隐藏数据。我知道如何隐藏数据(即它只是返回同一页面的链接),但是,我不知道如何使链接出现在被点击的条目旁边。我使用问题的 id 给每个链接一个唯一的类 id,所以我可以区分链接,但我被困在哪里去。你能建议我做什么吗?

<td><%= link_to "Show", {:controller => 'users', :action =>'show', :question_id =>"#{question.id}"}, {:class => "question #{question.id}"}%></td>

在此处输入图像描述

更新。我不能在每个项目旁边放置一个隐藏链接,然后将可见性设置为“隐藏”,所以我只需要一种方法将与单击的显示链接对应的隐藏链接的 css 设置为可见。

更新,当我点击显示链接(比如问题 24)时,它在 currentTarget 属性中提供了这些信息

currentTarget: a.question 24

http://localhost:3000/users/28?question_id=24

因此,我需要使与“close 24”类的链接可见。是否有一个正则表达式可以用来确保我从 currentTarget 获得 id 和只有 id?

showHide: function(e){

      e.currentTarget

      $('close' + id ).css('visibility', 'visible')

    },
4

1 回答 1

1

在您的链接中,您可以为问题 ID 添加数据属性

link_to 'text', url, data: { qid: question.id }

然后在你的js中

showHide: function(e) {
  $('.close' + e.currentTarget.data('qid')).css('visibility', 'visible')
}
于 2013-02-27T03:36:25.643 回答