我想打开选择按钮,如果我的标签上单击,一旦我的标签上点击选择按钮应该得到开放
这里是代码
<label>sachin</label>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
有在CSS或jQuery的什么办法?我不确定这件事。
小提琴:http://jsfiddle.net/Yh3Jf/
我想打开选择按钮,如果我的标签上单击,一旦我的标签上点击选择按钮应该得到开放
这里是代码
<label>sachin</label>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
有在CSS或jQuery的什么办法?我不确定这件事。
小提琴:http://jsfiddle.net/Yh3Jf/
你想要做这样的事? http://jsfiddle.net/Yh3Jf/6/
<label id="l">sachin</label>
<select id="s">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
$("#l").click(function() {
var size = $('#s option').size();
if (size != $("#s").prop('size')) {
$("#s").prop('size', size);
} else {
$("#s").prop('size', 1);
}
})
精湛的伙计。那就是我究竟想要的 – supersaiyan 2013-03-07 05:37:37
不幸的是,研究所可以使用任何类型的代码有本地选择下拉列表显示出来。
但我看到有人用backgrond图像,然后选择弹出,(检查Mightydeals.com)
如果不解决对jQuery和一些HTML产生的效果。
如果你只是想获得重点选择框(从而使您能够箭头向上和向下),你可以使用类似...
<label for="sel">sachin</label>
<select id="sel">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
不,我想打开它 – supersaiyan 2013-03-06 14:33:21
错的家伙;获得本机选择列表只是让鼠标在一个看不见的克隆:
$("label").mouseover(function(){
var $this = $(this);
var $input = $('#' + $(this).attr('for'));
if ($input.is("select") && !$('.lfClon').length) {
var $clon = $input.clone();
var getRules = function($ele){ return {
position: 'absolute',
left: $ele.offset().left,
top: $ele.offset().top,
width: $ele.outerWidth(),
height: $ele.outerHeight(),
opacity: 0,
margin: 0,
padding: 0
};};
var rules = getRules($this);
$clon.css(rules);
$clon.on("mousedown.lf", function(){
$clon.css({
marginLeft: $input.offset().left - rules.left,
marginTop: $input.offset().top - rules.top,
});
$clon.on('change blur', function(){
$input.val($clon.val()).show();
$clon.remove();
});
$clon.off('.lf');
});
$clon.on("mouseout.lf", function(){
$(this).remove();
});
$clon.prop({id:'',className:'lfClon'});
$clon.appendTo('body');
}
});
在测试了IE10,Chrome浏览器27和Firefox 22
IMO这应该是被接受的答案 – 2015-06-08 19:29:22
太过进取,克隆一个dom对象有很多意想不到的结果 – Ayyash 2017-04-29 17:13:19
@Ayyash有什么意外的结果?显然你应该在实现它之后测试一切仍然有效。无论如何,如果你想要一个不那么“积极”的方式,你总是可以在HTML本身(没有JS)中复制
无需对JavaScript这里,只是用CSS样式,并使用指针事件:
<label>
<select>
<option value="0">Zero</option>
<option value="1">One</option>
</select>
</label>
,相对CSS是
label:after {
content:'\25BC';
display:inline-block;
color:#000;
background-color:#fff;
margin-left:-17px; /* remove the damn :after space */
pointer-events:none; /* let the click pass trough */
}
这里是一个丑陋的小提琴样本:https://jsfiddle.net/1rofzz89/
这是真棒回答没有jQuery黑客 – Gags 2016-04-29 04:57:48
现在,我们不能。最好的解决方案是使用jQuery dropdownlist创建自己的下拉列表。 转到http://stackoverflow.com/questions/360431/can-i-open-a-dropdownlist-using-jquery 这里有一些插件可以帮助你 http://www.jquery4u.com/插件/ 10-jquery-selectboxdrop-down-plugins/ – JoDev 2013-03-06 14:32:54
我不认为这是可能的。您可以*选择标签,但不会扩展。我认为这取决于操作系统。 – 2013-03-06 14:33:06