我问了一个关于How to open option list of HTML select tag on onfocus()的问题。当时它解决了我的问题,但我错过了一个问题,每次打开html选择选项onfocus
下一个选择选项都消失了。
我无法找到此代码的错误。 这是有问题的问题jsFiddle的链接。
答案 0 :(得分:4)
是的,这就是行
var x = "select[tabindex='" + (parseInt($(this).attr('tabindex'),10) + 1) + "']";
$(x).fadeTo(50,0);
做。它们隐藏了下一个选择,因为否则它将显示在扩展的选择之上。
但这根本不是一个好的解决方案。相反,我会使用z-index来防止这种情况发生:
$('select').focus(function(){
$(this).attr("size",$(this).attr("expandto")).css('z-index',2);
});
$('select').blur(function(){
$(this).attr("size",1).css('z-index','1');
});
$('select').change(function(){
$(this).attr("size",1).css('z-index','1');
});
使用类而不是内联样式会更好。但我用它作为演示。
答案 1 :(得分:0)
只需注释掉fadeTo功能即可。检查此http://jsfiddle.net/PpTeF/2/
$(document).ready(function(){
$('select').focus(function(){
$(this).attr("size",$(this).attr("expandto"));
var x = "select[tabindex='" + (parseInt($(this).attr('tabindex'),10) + 1) + "']";
//$(x).fadeTo(50,0);
});
$('select').blur(function(){
$(this).attr("size",1);
var x = "select[tabindex='" + (parseInt($(this).attr('tabindex'),10) + 1) + "']";
//$(x).fadeTo('fast',1.0);
});
$('select').change(function(){
$(this).attr("size",1);
var x = "select[tabindex='" + (parseInt($(this).attr('tabindex'),10) + 1) + "']";
//$(x).fadeTo('fast',1.0);
});
});
干杯!!