2012-12-02 40 views
2

我在使用HAML將鏈接嵌套到另一個鏈接中時遇到問題。 HAML中的縮進是完全正確的,但HTML輸出非常錯誤。無法在HAML中的鏈接中嵌套鏈接

原HAML代碼:

.item 
    =link_to page_path do 
    .item-info 
     %h3 Item name 
     =link_to 'Link', different_page_path 

當我查看Chrome的檢查元素的HTML,這是我得到:

<a href="/page"></a> 
<div class="item-info"> 
    <a href="/page"> 
    <h3>Item name</h3> 
    </a> 
    <a href="/different_page">Link</a> 
</div> 

但當我查看源,它顯示正確的了,但在查看該頁面時仍然混亂:

<a href="/page"> 
    <div class='item-info'> 
    <h3>Item name</h3> 
    <a href="/different_page">Link</a> 
    </div> 
</a> 

我很茫然,任何幫助都會b很棒。謝謝。

+1

您是否試圖在鏈接中添加鏈接? – Blender

+0

我想要有一個更大的容器作爲鏈接,但也包含其中的鏈接將轉到不同的頁面。但是我發現瀏覽器規則不允許鏈接嵌套在鏈接中。不知道爲什麼,但我想這就是它。 – theReifman

+0

那麼,當你點擊另一個鏈接中的鏈接時,你會發生什麼? – Blender

回答

-1

如果你真的想要一個鏈接中的鏈接,你可以直接使用HAML代替軌道(或者您使用的是什麼框架)方法的link_to:

.item 
    %a{ :href => '/page' } 
    .item-info 
     %h3 Item name 
     %a{ :href => '/different_page' } Link 

的link_to幫助你做正確的事visavi如上所述的瀏覽器。可能很好意識到這不是一個危險的問題,而是link_to的實現。

更新:澄清 - 它仍然不會被瀏覽器很好地渲染,但產生的標記將按照要求。

+0

對不起,忘了補充說這個方法不行。我實際上開始使用HAML作爲容器。瀏覽器仍然渲染不正確。 – theReifman

+0

是的,我試圖在我的答案中引用該討論。編輯答案以使其更清晰。 – froderik