我在Rails应用中的每个用户个人资料页面/views/users/show.html.erb上都有来自问题模型的项目列表。项目列表是您希望在/views/questions/index.html.erb中找到的一种信息。我已对其进行了排列,以便当用户点击展示链接时,它会在同一页面中显示内容/views/users/show.html/。如果用户点击另一个节目链接,它只会将显示的内容替换为使用下一个链接单击的问题的ID。但是,在用户点击show之后,除非用户刷新主页等,否则无法取消关闭数据;因此,一旦用户点击显示链接(假设有10个链接的列表),我希望能够在单击的条目旁边显示一个链接(而不是列表中的9)允许用户隐藏数据。我知道如何隐藏数据(即它只是一个返回同一页面的链接),但是,我不知道如何使链接出现在被单击的条目旁边。我已经使用问题的ID给每个链接一个唯一的类ID,所以我可以区分链接,但我坚持从这里去的地方。你能建议我做些什么吗?
<td><%= link_to "Show", {:controller => 'users', :action =>'show', :question_id =>"#{question.id}"}, {:class => "question #{question.id}"}%></td>
更新。我不能在每个项目旁边放置一个隐藏链接,然后将可见性设置为“隐藏”,所以我只需要一种方法将css设置为对应于所单击的show链接的隐藏链接的可见性。
更新,当我点击显示链接(例如问题24)时,它会在currentTarget属性中提供此信息
currentTarget: a.question 24
http://localhost:3000/users/28?question_id=24
因此,我需要在“close 24”类中显示一个链接。是否有一个正则表达式,我可以用来确保我从currentTarget获取id和only id?
showHide: function(e){
e.currentTarget
$('close' + id ).css('visibility', 'visible')
},
答案 0 :(得分:1)
在您的链接中,您可以为问题ID添加数据属性
link_to 'text', url, data: { qid: question.id }
然后在你的js
showHide: function(e) {
$('.close' + e.currentTarget.data('qid')).css('visibility', 'visible')
}