我有一个用PHP呈现的ul列表,我正在尝试突出显示当前所选项目。代码是标记排序jquery组合的一部分。我试图在li元素中添加一个当前类,但这只适用于默认元素" All"。
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 :(得分:1)
您可以尝试使用以下css样式。
.jquery li:hover
{
color: #000;
background: #fff
}
答案 1 :(得分:1)
试试这个
jQuery(document).on("click", "ul.jquery > li", function() {
var $this = jQuery(this);
jQuery(".highlight").removeClass("highlight");
$this.addClass("highlight");
});
然后为突出显示类
编写一个css规则答案 2 :(得分:0)
我猜测过滤时没有页面加载,因为您的列表项具有数据过滤器属性,因此我猜它是使用jQuery。然后你应该使用gbestard建议的东西。
但是,如果有页面加载并且你正在使用PHP,就像你的标签说...你需要存储在某处的所选项目值(POST,GET等)和你存储的选择如果任何数组项具有相同的值,您需要比较的项目,如果是,只需添加类&#34;选择&#34;。
这是使用GET,因此您选择的值将在网址中。
$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类提供样式。