【发布时间】:2012-06-07 11:09:10
【问题描述】:
我有一个用于搜索的下拉设置。这个想法是您单击一个选项,然后出现 OPTGROUP。我想做的是,一旦选择了标签,它就会跳转到 OPTGROUP 的那个部分。
到目前为止,我已经编写了一些 jQuery。看到这个jsFiddle - 所以一旦你选择了一个主要类别。我希望 optgroup 转到其配对标签。我怎样才能做到这一点?
HTML
<select id="category" name="category">
<option selected="selected" value="0">Choose a category...</option>
...
<option value="4">Photography</option>
</select>
<select multiple="multiple" id="subcategory" name="category_ids[]">
<optgroup label="Art Styles">
<option value="5">Abstract</option>
...
<option value="18">Graphics</option>
</optgroup>
<optgroup label="Art Subjects">
<option value="19">Animals</option>
...
<option value="45">Dreams & Nighmares</option>
</optgroup>
<optgroup label="Media">
<option value="46">Water Colour</option>
...
<option value="56">Mixed Media</option>
</optgroup>
<optgroup label="Photography">
<option value="57">Color Photography</option>
...
<option value="64">Celebrity Photography</option>
</optgroup>
肖像 景观 正方形
JavaScript
// Search Options Dropdown
// Hide Subcategory Dropdown
$('#subcategory').css('display', 'none');
// Hide Orientation Dropdown
$('#orientation').css('display','none');
$('#category').change(function()
{
$('#subcategory').css('display', 'block');
$('#orientation').css('display', 'block');
var CatValue = $("#category").val();
if (CatValue == '1')
{
}
});
【问题讨论】:
-
您应该用简单的
show()和hide()替换您的css()调用,而不需要额外的参数。即使只是为了可读性。 -
@StefanMajewsky - 注意。我现在已经关注了
-
非常肮脏的黑客:jsfiddle.net/aNhzY/2。在 Chrome 中工作,但我确信有更好的方法。
-
不错,但是 FireFox 中的选项值 2,3 和 4 在标签下方加载了很多。
-
嗯,Firefox 似乎在选择框中添加了 1px 的垂直填充。你需要
- 1而不是+ 1,但这需要浏览器嗅探。