这是超级烦人的超级烦人的IE-select-box问题!
我成功地解决了它......
JQUERY:
$(function(){
if($.browser.msie){
$("select:not(#wrkTimeFrm,#wrkTimeFrm1,#wrkTimeTo,#wrkTimeTo1)")
.focus(function(){
$(this).css("width","auto");
$(this).css("position","absolute");
});
$("select:not(#wrkTimeFrm,#wrkTimeFrm1,#wrkTimeTo,#wrkTimeTo1)")
.blur(function(){
$(this).css("width","145px");
$(this).css("position","inherit");
});
}
})
......但那是直到现在。
如您所见:not(id)s是大小为/应小于145px的选择框,即它不应该改变。它工作正常。但是这样的选择框的列表太多了,无法处理这种方式。此外,ID是动态的,我不知道它的宽度是多少/小于145px(选项是动态的......显然)。
所以现在,我只是在其自动宽度超过当前宽度时尝试更新选择框的宽度。 类似的东西:
$(function(){
if($.browser.msie){
$("select").focus(function(){
if(autoWidth>currentWidth){
do_the_rest();
}
});
}
});
我正在为'autoWidth'和'currentWidth'运行一些想法($(“。dd”)。outerWidth()给出的宽度为145,但我担心如果我可以将它用作currentWidth我在同一个jsp上有相同的css类'dd'的多个选择框,虽然只为'this'选择框触发了事件。可能有人可以让我知道如何获得焦点下的选择框的类名。 ..maybe!.....而不是outerWidth。)。
所以请帮忙!
答案 0 :(得分:1)
我发现很难理解你的意思,特别是因为你没有包含任何小提琴甚至是生成的HTML代码......但我想也许你想要做的就是:
$(function(){
if($.browser.msie){
$("select").focus(function(){
if($(this).width()>145){
$(this).css("width","auto");
}
});
}
});
<强>更新强>
$(function() {
$("select").focus(function() {
if ($(this).width() > 95) {
var prevWidth = $(this).width();
$(this).css("width", "auto");
if ($(this).width() < 100) {
$(this).css("width", 100 + "px");
}
$(this).blur(function() {
$(this).css("width", prevWidth + "px");
});
}
});
});
答案 1 :(得分:0)
我认为如果你使用%作为你的CSS宽度,这个问题handels
width:80%;