В настоящее время я реализую автозаполнение jQuery UI в интернет-магазине моих клиентов. Проблема заключается в следующем: элемент, в котором находится автозаполнение, имеет более высокий z-индекс, а затем z-индекс автозаполнения. Я попытался вручную установить z-index автозаполнения, но у меня возникло ощущение, что пользовательский интерфейс jQuery перезаписывает это.
На самом деле мой вопрос является дубликатом списка предложений автозаполнения неправильного z-индекса, как я могу изменить?, но поскольку ответа не было, я думал о его предоставлении еще одна попытка.
Любая помощь приветствуется!
Мартейн
Почему бы не использовать z-index и! important?
.ui-autocomplete { position: absolute; cursor: default;z-index:30 !important;}
Во время поиска я нашел эту тему (http://forum.jquery.com/topic/alternating-style-on-autocomplete). По-видимому, единственный способ изменить стиль окна автозаполнения - это выполнить через javascript:
open: function(){
$(this).autocomplete('widget').css('z-index', 100);
return false;
},
Измените z-индекс родительского Div, в меню автозаполнения будет указатель div z-index + 1
appendTo
чтобы указать разметке меню, куда идти, в противном случае вы можете добавить класс ui-front
к одному из родительских элементов ввода.
В CSS jQuery UI
:
.ui-front { z-index: 9999; }
Попробуйте это, вы можете манипулировать z-индексом во время выполнения или инициализировать
$('#autocomplete').autocomplete({
open: function(){
setTimeout(function () {
$('.ui-autocomplete').css('z-index', 99999999999999);
}, 0);
}
});
open: function () {
$(this).autocomplete('widget').zIndex(10);
}
Если вы можете обеспечить более высокий z-индекс при вводе текста автозаполнения, это решение вашей проблемы.
Список опций автозаполнения jQuery UI вычисляет значение z-индекса, беря z-индекс вводимого текста, к которому он присоединен, и добавляет 1 к этому значению.
Таким образом, вы можете указать z-индекс 999 для ввода текста, автозаполнение будет иметь значение z-index 1000
Взято из http://bugs.jqueryui.com/ticket/5489
<input type="text" class="autocomplete" style="z-index:999;" name="foo">
добавить следующий
.ui-autocomplete
{
z-index:100 !important;
}
в файле jquery-custom-ui.css(или мини-, если вы его используете).
также посмотрите, к чему вы добавляете элемент. я столкнулся с этой проблемой, когда я добавил автозаполнение к внутреннему div, но когда я добавил автозаполнение к тегу body, проблема исчезла.
Дайте ему попробовать в любом случае в вашем css (до script загрузки), а не в firebug:
.ui-selectmenu-menu {
z-index:100;
}
В моем случае это работает и создает z-индексы типа: 100x (например, 1002)
Для тех разработчиков, которые все еще используют этот плагин. Попробуйте следующее:
.acResults
{
z-index:1;
}
Для меня было достаточно с z-index: 1, установить значение, которое вам нужно в вашем случае.
!important