【问题标题】:Rails: display tooltip containing linksRails:显示包含链接的工具提示
【发布时间】:2014-06-08 04:25:25
【问题描述】:

我的 Rails 应用程序中有以下图像标签-

<%= link_to image_tag("../../qn/ads.svg"),{:controller => 'cp_details',:action => 'index', :id => empid, :cp => @cmpny.id }, :title=>"company", :class => 'butn' %>
<%= link_to image_tag("../../qn/users.svg"),{:controller => 'groups',:action => 'index', :id => empid, :cp => @cmpny.id }, :title=>"groups", :class => 'butn' %>
<%= link_to image_tag("../../qn/dp.svg"),{:controller=>'dep',:action => 'index', :id => empid, :cp => @cmpny.id,:type=>'dp' }, :title=>"dept", :class => 'butn' %>`

现在我正在尝试使用上面的链接实现工具提示弹出(单击或悬停时)。任何人都可以帮我在工具提示弹出框中实现包含三个链接公司、组、部门的工具提示吗?我提到并尝试了以下-

https://gist.github.com/davidjsevans/5617391

Bootstrap Tooltip in Ruby on Rails

Using Tooltips with link_to (Ruby on Rails 3.2.3)

http://archive.railsforum.com/viewtopic.php?id=28485

但我想我不知道如何在我的应用中实现这些。我正在尝试application.js 中的js 和jquery 以及employ/index.html 中的link_to 代码。我尝试在这样的 link_to 语句之一中实现它:

<%= link_to image_tag("../../qn/ads.svg"),{:controller => 'cp_details',:action => 'index', :id => empid, :cid => @cmpny.id }, :title=>"company", :class => 'butn tag-tooltip', tag, :data => {:toggle=>"tooltip"},'data-original-title' => "Hello",'data-placement' => 'right'%>`

Javascript:

$(document).on("ready page:change", function() {
    $('.tag-tooltip').tooltip();
});

然后我也试过了:

<div id="tooltipelement">
    <a href="#" onclick="javascript:window.location = '/cp_details/index/<%=empid%>?cp=<%=@cmpny.id%>'">Company</a>
</div>

css:

.tooltipelement{
    width: 20px;
    height: 20px;
    background: red;
}

.tooltipelement a {
    display: none;
    padding-left: 30px;
}

.tooltipelement:hover a {
    display: block;
    background: green;
}

但所有这些都对我不起作用,因为我不知道如何正确实施它们。我希望所有三个链接都出现在工具提示弹出框中。谁能帮帮我吗?提前致谢。

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

我认为您最好使用 bootstrap popover plugin - 工具提示主要用于将链接的 title 属性转换为 javascript 驱动的工具提示


您遇到的问题是您试图在工具提示中包含链接等。工具提示仅用于文本,并且由于弹出框支持 HTML,因此您应该能够在其中包含链接

根据bootstrap website 上提供的信息,您最好这样做:

<%= link_to "link", path(), class: class="butn", data: { toggle: "popover", content: popover_links } %>

#app/helpers/application_helper.rb
def popover_links
    link_to( "something", something_path ) +
    link_to( "something", something_path )
end

参考:What is the best way to return multiple tags from a Rails Helper?

【讨论】:

  • 很抱歉再次打扰您,我是rails的初学者。 def popover_links link_to( "company", '/cp_details/index/empid.id?cp=@cmpny.id' ) + link_to( "groups", '/groups/index/empid.id?cp=@cmpny.id' ) end &lt;%= link_to "link", path(), class: "butn", data: { toggle: "popover", content: popover_links } %&gt; 这里我应该给出什么作为路径()?以及如何将值 empid 和 @cmpny.id 传递给方法 popover_links?我想我真的很困惑。
  • path() 是您要使用的 URL。对你来说,应该是{:controller =&gt; 'cp_details',:action =&gt; 'index', :id =&gt; empid, :cp =&gt; @cmpny.id } :)
  • 您需要阅读link_to - 它会帮助您准确了解它应该如何工作:)
  • 谢谢..:) 我不确定我写的 popover_links 方法。这是正确的吗?我想我在那里犯了一些错误。 :(
  • 我想说你遇到的主要问题是你没有调用正确的路径助手。你真的需要看看如何使用rake routes
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
相关资源
最近更新 更多