2013-08-14 2 views
1

Я задал вопрос о How to open option list of HTML select tag on onfocus(). В то время он решил мою проблему, но я пропустил одну проблему: каждый раз при открытии опции выбора html onfocus следующая опция выбора исчезла.Открытие опции выбора html на фокусе

Я не могу найти, что происходит с этим кодом. вот ссылка на этот проблемный вопрос jsFiddle.

+3

Что вы пытаетесь сделать? Вы пытаетесь одновременно открыть несколько раскрывающихся меню? –

+0

'@Ioannis Karadimas' no. я хочу открыть select onfocus один за другим, но выберите один следующий тег select исчезнет. Как при выборе «От одного до семи» в это время «От одного до десяти» исчезает. – Vijay

+1

для справки: 'http: // jsfiddle.net/PpTeF/8 /' эта ссылка удовлетворяет мою потребность. – Vijay

ответ

4

Да, это то, что линии

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

сделать. Они скрывают следующий выбор, потому что иначе он будет отображаться поверх расширенного.

Это не совсем хорошее решение. Вместо этого я хотел бы использовать Z-индекс, чтобы не допустить этого:

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

Было бы еще лучше использовать класс вместо встроенного стиля. Но я использовал это как демонстрацию.

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

+0

'@ Andy' i appriciate ваш ответ, но в то время как select optionlist открыт в одно и то же время, я пытаюсь использовать клавишу со стрелками вверх, список опций приближается. – Vijay

+0

@win Ну, тогда просто удалите последние строки '$ ('select'). Change (....);'. – Andy

+0

+1 и спасибо за ответ, что он работает для меня сейчас. – Vijay

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);    
}); 
}); 

Cheers !!

+0

'@ bhb' благодарит за ответ, но теперь по стрелке вверх-вниз клавиша выбора идет близко. – Vijay

+0

Не могли бы вы быть более конкретными? Спасибо – bhb

+0

, пожалуйста, обратитесь к этому 'http: // jsfiddle.net/PpTeF/7 /' здесь. в то время как основное внимание уделяется первому выбору, открывается окно выбора опций, если я пытаюсь использовать стрелку со стрелками клавиатуры в тот же самый момент, что открытие в onfocus приближается. – Vijay

Смежные вопросы