2017-06-15 76 views
0

在我的rails應用程序中,我有兩個模型,用戶和目標。用戶可以擁有多個目標,目標屬於用戶。我有一個頁面,列出用戶顯示頁面中的所有用戶目標。這是使用.each循環完成的,並且在此循環中,我創建了一個動態類名,將goal_id放入類名中。在css/scss或javacript中定位動態類名稱

我希望能夠在我的css/scss文件夾中定位這些單獨的類,例如,當我將鼠標懸停在它上面時,我可以僅突出顯示第一個目標。

應用程序/視圖/用戶/ show.html.erb

<div class="user-goals-mouse-events"> 
<% @user.goals.each do |goal| %> 
    <%= link_to goal_path(goal), class: "user-goals-hover-#{goal.id}" do %> 
      <div class="row"> 
       <div class="col-md-4"> 
        <h2 class="color-light-blue"><%= goal.name %></h2> 
       </div> 
       <div class="col-md-8 user-goals-description"> 
        <h4><%= goal.description %></h4> 
       </div> 
      </div> 
      <h6 class="hide-username-<%= goal.id %>"><%= @user.username %></h6> 
    <% end %> 
<% end %> 

的SCSS當前沒有工作,但它可以幫助顯示什麼,我試圖做的。 應用程序/資產/樣式表/ custom.css.scss

.user-goals-mouse-events > a { 
    border-bottom-style: solid; 
    border-bottom-color: black; 
    border-bottom-width: 1px; 
    //background-color: black; 
    &:hover { 
     background-color: #26AEFF; 
     color: gold; 
    } 
} 

.user-goals-mouse-events > div > h6 { 
    opacity: 0; 
} 

.color-light-blue { 
    color: #26AEFF; 
    &:hover { 
     color: white; 
    } 
} 

如果較好地解決了這個問題做了不同的方式(例如,用javascript),那麼請讓我知道,因爲我想這樣做的最有效辦法。

+0

你只想在上空盤旋加以強調的第一個目標? – hashrocket

+0

我想強調我目前徘徊的目標,所以如果我在id = 1的目標上盤旋,那麼我想將懸停規則應用到類「user-goals-hover-1」 。如果我然後將鼠標移動到i.d爲2的下一個目標,那麼應該突出顯示「user-goals-hover-2」類,並且「user-goals-hover-1」將不再突出顯示。 – MMarley

+0

你的任何scss都可以在你的應用程序的任何地方工作嗎? – hashrocket

回答

0

嘗試使用屬性 - 值 - 開始 - 與選擇:

a[class^=user-goals-hover] { 
    border-bottom-style: solid; 
    border-bottom-color: black; 
    border-bottom-width: 1px; 
    //background-color: black; 

    &:hover { 
    background-color: #26AEFF; 
    color: gold; 
    } 
} 
+0

它的工作原理!我改變了唯一的做法是在.each循環和link_to之間添加一個新的div,類名稱爲「user-goals-hover-<%=goal.id%>」,而不是像之前那樣在link_to中(當它在那裏時不起作用)。因此,在scss文件中,我使用'div [class^= user-goals-hover]'來定位它,它效果很好。再次感謝您的幫助! – MMarley

相關問題