我遇到了这个问题,我无法在我的Chrome上展开这个简单的选择标记。
<select id="filterCategory" class="">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
&#13;
重现的步骤:
我目前在Ubuntu上使用Chrome版本53.0.2785.116(64位)
这适用于任何其他浏览器或移动原生浏览器,仅适用于Chrome。
问题:此临时解决方法是什么?
编辑:
如果我使用固定位置作为其容器并使用bootstrap中的form-control
类,则此行为会变得更糟。该选项位于带有隐藏选项的Chrome窗口之外。
答案 0 :(得分:2)
答案 1 :(得分:2)
$('select').each(function() {
// set up the list
var $this = $(this),
$class = $this.attr('class') + ' sel',
$id = $this.attr('id'),
list = '',
opts = '',
start = '';
$this.hide();
$('option', this).each(function(i) {
var content = $(this).text();
if (i === 0) {
start = '<div >' + content + '</div>';
}
opts += '<li data-id="' + $id + '">' + content + '</li>';
});
list = '<ul >' + opts + '</ul>';
$this.after('<div class="' + $class + '" >' + start + list + '</div>');
});
// adds the clicks
$('.sel').on('click', function(e) {
$('ul', this).fadeIn('fast');
$('ul', this).on('mouseleave', function() {
$(this).fadeOut('slow');
});
});
// registers the input to the original selector
$('.sel ul li').on('click', function(e) {
e.preventDefault();
$('.sel ul').fadeOut('fast');
var $this = $(this),
target = $this.data('id'),
num = $this.text();
$('select#' + target).val(num).change(); // triggers the hidden selector
$this.parent().siblings().text($this.text());
return false;
});
// test only
$('select').on('change', function() {
$("#monitor").text(this.value); // or $(this).val()
});
&#13;
.sel {
width: 3em;
background: #fff;
cursor: pointer;
text-align: center;
border: 1px solid #09f;
}
.sel ul {
display: none;
position: relative;
left: 0em;
top: -1em;
width: 3em;
margin: 0em;
padding: 0em;
cursor: pointer;
background: #fff;
text-align: center;
list-style-type: none;
}
.sel ul li:hover {
background: #bbb;
}
#monitor {
position: fixed;
left: 3em;
width: 3em;
height: 1em;
bottom: 4em;
background: #09f;
text-align: center;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="filterCategory" class="">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<div id='monitor'>test</div>
&#13;
答案 2 :(得分:0)
答案 3 :(得分:0)
为chrome和chromium浏览器添加div,并使用data-tap-disabled属性,如下所示:
<div data-tap-disabled="true">
<select>
</select>
</div>
&#13;