【发布时间】:2023-03-14 07:31:01
【问题描述】:
我有一个下拉菜单,现在尝试将其用作过滤器。当我单击菜单项开始过滤时传递一个值但是我在 Jquery 部分有点困惑。如何传递“名称”和“值”并开始过滤。重要的问题是当我单击一项并进行过滤时。之后,当我单击下一个项目时,我不希望它重新开始。我想保留旧的搜索历史。并将其添加到新过滤器中。
var allOptions = $(".init").children('li');
$("ul").on("click", function() {
allOptions.removeClass('selected');
$(this).addClass('selected');
$("ul").children('.init').html($(this).html());
allOptions.slideUp();
});
#filter-wrapper
{
margin-top:15px
}
#filter-wrapper ul
{
list-style:none;
position:relative;
float:left;
margin:0;
padding:0
}
#filter-wrapper ul a
{
display:block;
color:#333;
text-decoration:none;
font-weight:700;
font-size:12px;
line-height:32px;
padding:0 15px;
font-family:"HelveticaNeue","Helvetica Neue",Helvetica,Arial,sans-serif
}
#filter-wrapper ul li
{
position:relative;
float:left;
margin:0;
padding:0
}
#filter-wrapper ul li.current-menu-item
{
background:#ddd
}
#filter-wrapper ul li:hover
{
background:#f6f6f6
}
#filter-wrapper ul ul
{
display:none;
position:absolute;
top:100%;
left:0;
background:#fff;
padding:0
}
#filter-wrapper ul ul li
{
float:none;
width:200px
}
#filter-wrapper ul ul a
{
line-height:120%;
padding:10px 15px
}
#filter-wrapper ul ul ul
{
top:0;
left:100%
}
#filter-wrapper ul li:hover > ul
{
display:block
}
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<div id="filter-wrapper">
<ul>
<li name="sortbyprice" class="current-menu-item"><a href="#">Cheapest Cars</a></li>
<li name="sortbyprice" class="current-menu-item"><a href="#">Newest Cars</a></li>
<li><a href="#">Car Color</a>
<ul class="init" name="sortbycolor">
<li data-value="red"><a href="#">Red</a></li>
<li data-value="black"><a href="#">Black</a></li>
<li data-value="silver"><a href="#">Silver</a></li>
</ul>
</li>
</ul>
</div>
例如,当我选择红色时,汽车颜色会随着红色而改变。
P.S:顺便说一下,我给的name="" 来自 Laravel 控制器。它包含数据。
这是我的旧过滤器。它正在处理这个问题。我可以过滤数据。
<form>
<select name="sortbyprice" class="custom-select custom-select-md" style="width: 100px;">
<option value="asc">cheapest</option>
<option value="desc">Expensive</option>
</select>
<select id="cars" name="cars" class="custom-select custom-select-md" style="width: 100px;">
<option value="" disabled selected>car colors</option>
<option value="red">red</option>
<option value="blue">blue</option>
<option value="black">black</option>
</select>
<button type="submit" name="button" class="btn btn-success" id="filter-btn">Filter</button>
</form>
【问题讨论】:
-
提交数据需要使用
<select><option></option></select>,而不是<ul>. -
这里我不想使用选择和选项。而不是我尝试将
ulli与jQuery 一起使用。 -
所以要通过ajax提交数据?
-
这里有多个错误。第一个数据值“red”等...缺少“=”符号...data-value =“red”...第二个.data 不是函数..
-
您是否尝试在点击时获取“数据值”属性的值?
标签: javascript jquery