簡體   English   中英

將一個 link_to 嵌套在另一個 link_to 中

[英]Nest a link_to inside of another link_to

我需要在另一個 'a' 元素中嵌套一個 'a' 元素,如下所示:

<a href="www.example.com" class="so-and-so">
    <span>something</span>
    <a href="www.another.example.com" class="another-link"><i class="an-icon"></a>
</a>

但是我需要使用 rails 'link_to' helpers 而不是純 html。 但是當我嘗試像這樣嵌套 link_to 助手時:

<%= link_to "www.example.com", class: "so-and-so" do %>
    <%= content_tag :span, "something" %>
    <%= link_to "www.another.example.com", class: "another-link" do %>
        <%= content_tag :i, class: "an-icon" %>
    <% end %>
<% end %>

它輸出 html 更像這樣:

<a ...>
    <span ...>
</a>
<a class="another-link" ...>...</a>

任何幫助將不勝感激。 謝謝!

編輯

事實證明,rails 畢竟輸出了正確的 html,但瀏覽器沒有正確解釋它。 鏈接中可以有鏈接嗎?

已解決(ISH)

事實證明,嵌套<a>元素不是有效的 HTML,因此瀏覽器只是試圖“糾正”我的代碼。 我最終只是將 a 元素放在另一個元素之外,並使用 CSS 使其看起來相同。

由於您需要在控制器上的銷毀操作中使用內部link標記點。 您可以通過第一個鏈接的click事件觸發該動作。

  $('#first_link').on('click', function() {
          $.ajax({
            type: "DELETE", 
            url: YOUR_SECOND_LINK ,
            data: {id: YOUR_ID },
            success: function(data, textStatus, jqXHR){...},
            error: function(jqXHR, textStatus, errorThrown){...}
          })
   });

這可以通過使用<template>元素來實現,該元素將阻止瀏覽器在打開另一個錨標記之前關閉它。

<%= link_to "www.example.com", class: "so-and-so" do %>
  <%= content_tag :span, "something" %>
  
  <template>
    <%= link_to "www.another.example.com", class: "another-link" do %>
      <%= content_tag :i, class: "an-icon" %>
    <% end %>
  </template>
<% end %>

我解決了這個問題,因為我正在將嵌套錨標記的 Vue 組件重構到html.erb文件中。 每個單獨的 Vue 組件都要求將它包裝在<template>標簽中,所以我復制了它,瞧!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM