锚标签在内部跨越时不起作用

时间:2015-08-20 09:59:55

标签: html ruby-on-rails anchor

为什么我不能将它作为achor标签?

为什么以下代码无效。

p a a span a span <p class="paraClass"> <a> <span id="cartitems"> <%= pluralize(@size, 'item') %> </span> </a> </p> 后关闭{{1}}

这是代码。怎么了?

{{1}}

请帮忙

3 个答案:

答案 0 :(得分:2)

A-Tag需要有一个href - 否则它只是一个锚。

一个好方法是使用名为link_to的铁轨助手 您可以通过两种方式使用它,只需传递content-string和url,或传递url和块。如果传递一个块,则块的返回将用作a-tag的显示。

link_to "content", "url", {options}

link_to "url", {options} do block end

除非您只是使用某些字符串作为显示文本,否则我总是建议您使用块样式。您可以更轻松地编辑该块内部的内容,当然也更容易阅读和理解。

在你的情况下,它将是:

<p class="paraClass"> 
    <%= link_to "#", onclick: "return false;" do %>
      <span id"cartitems">
         %= pluralize(@size, 'item') %>    
      </span>
    <%- end %>
</p>

也许您想切换到 haml ,这可以帮助您轻松编写HTML。在Haml中,相同的代码在2行代码中看起来很甜:

=link_to "#" do
  %span#cartitems=pluralize @size, "item"

答案 1 :(得分:1)

更新: [根据评论]

简单。只需添加 href标记,如下面的代码:

<p class="paraClass"> 
    <a>
     <span id="cartitems">
     <%= pluralize(@size, 'item') %>     
     </span>  
    </a>
  </p>

<!-- here simply changing the color -->
<style>
 a { cursor: pointer; }
 a:hover{ color: #ff9900; }
</style>

答案 2 :(得分:0)

<%= link_to content_tag(:span, pluralize(@size, 'item') ), '#' %>

使用链接标记content_for ...以便它显示你想要的方式