Opening a html select option on focus

浪尽此生 提交于 2019-12-24 11:53:43

问题


I had asked a question about How to open option list of HTML select tag on onfocus(). At that time it solved my problem but I missed one problem that every time on opening a html select option onfocus next select option went disappear.

I not able to find whats going wrong with this code. here is link for that problematic question jsFiddle.


回答1:


Yes, that's what the lines

var x = "select[tabindex='" + (parseInt($(this).attr('tabindex'),10) + 1) + "']";
$(x).fadeTo(50,0);

do. They hide the next select, because otherwise it would show on top of the expanded one.

This isn't a good solution at all though. Instead i'd use z-index to prevent that from happening:

$('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');
}); 

It would be even better to use a class instead of inline style. But i used that just as a demonstration.

http://jsfiddle.net/PpTeF/1/




回答2:


Just comment out the fadeTo function. check this 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);            
 }); 
});

Cheers!!



来源:https://stackoverflow.com/questions/18226939/opening-a-html-select-option-on-focus

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!