2014-04-25 76 views
0

我有一個是在PHP中呈現的UL列表,我想強調當前選定的項目。該代碼是標記排序jquery組合的一部分。我試圖給li元素添加一個當前類,但只適用於默認元素「All」。PHP突出顯示列表中當前項目

PHP代碼

if ($unique_tags_arr) { 
      echo '<ul class="jquery">'; 
      echo '<li data-filter=".filterable">'; 
      echo "All"; 
      echo '</li>'; 
      foreach ($unique_tags_arr as &$value) { 
       echo '<li data-filter=".'.str_replace(' ', '', $value). " " .'"> '.$value.'</li>'; 

      } 
      echo '</ul>'; 
     } 
+0

你有沒有存儲任何地方所選項目的價值? POST,GET,會話還是其他地方? – mMoovs

回答

1

試試這個

jQuery(document).on("click", "ul.jquery > li", function() { 
        var $this = jQuery(this); 
        jQuery(".highlight").removeClass("highlight"); 
        $this.addClass("highlight"); 
       }); 

,然後寫的亮點類

+0

這就像一個魅力!但是,有什麼辦法可以將「全部」標籤設置爲第一次進入頁面時的亮點? – DeSoto

+0

不顧最後一個問題!感覺非常愚蠢,我沒有馬上找出那一個。非常感謝你的幫助! – DeSoto

+0

不客氣:) – gbestard

1

您可以用下面的css樣式嘗試。

.jquery li:hover 
{ 
    color: #000; 
    background: #fff 
} 
0

我猜有過濾時沒有頁面加載,因爲你的列表項具有數據過濾器屬性的CSS規則因此我猜想這是使用jQuery。那麼你應該使用類似gbestard的建議。

但是,如果有頁面加載和你正在使用這個PHP喜歡你的標籤說......你需要存儲的地方所選項目的值(POST,GET等),並與您的存儲選擇的項目,你需要比較如果任何數組項具有相同的值,並且如果是,則只需添加「selected」類。

這是GET所以你選擇的值將在URL中。

$active = $_GET['selected_filter']; 

if ($unique_tags_arr) { 
    echo '<ul class="jquery">'; 
    echo '<li data-filter=".filterable">'; 
    echo "All"; 
    echo '</li>'; 
    foreach ($unique_tags_arr as &$value) { 
     echo '<li data-filter="'.str_replace(' ', '', $value).'" '; 
     if ($value == $active) { echo 'class="selected"'; } 
     echo '> '.$value.'</li>'; 
    } 
    echo '</ul>'; 
} 

然後只給樣式給.selected類。

+0

這導致排序不能正常工作。只有全部標籤打得不錯。 – DeSoto

相關問題