2014-10-20 10 views
0

У меня проблема с выпадающим списком внутри модального всплывающего окна JQuery.z-index не работает во всплывающем окне

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

Я проверяю z-index для всплывающего окна 1000, я попытался поставить гораздо больше больших чисел z-index значение для выпадающего списка lu. Это все еще покрыто ... Надеюсь, что кто-то, у кого есть много опыта, может помочь мне, большое вам спасибо.

var $dialog = $(".ui-res-offer-dialog"); 
$dialog.modal("show"); 

Диалог является <div></div> с классом .ui-res-offer-dialog, и есть некоторые поля ввода внутри <div>. Ниже приведен код выпадающего списка. $ elem - глобальная переменная, которая будет изменяться в зависимости от того, на какое нажатие введено поле ввода.

function displayFieldOptions(list) { 
     if($elem != null) { 
      var currentValue = $elem.val().toUpperCase(); 
      if("" != currentValue) { 
       var optionsHtml = '<ul class="field-options-container">'; 
       var optionsSize = 0; 

       $.each(list, function(index, value) { 
        // If the value contains the user input, and the option size is under 10, add this option 
        if(value.toUpperCase().indexOf(currentValue) >= 0 && optionsSize < 10) { 
         optionsHtml += '<li class="field-options" onclick="setFieldValue(this)">' + value + '</li>'; 
         optionsSize++; 
        } 
       }); 
       optionsHtml += "</ul>"; 
       $(".field-options-container").remove(); 
       var $optionsHtml = $(optionsHtml); 
       $optionsHtml.css("width",$elem.css("width")); 
       // If the input box is focused and it has options inside, display it 
       if($elem.is(":focus") && optionsHtml.indexOf("setFieldValue") > 0) { 
        $elem.after($optionsHtml); 
       } 
      } else { 
       $(".field-options-container").remove(); 
      } 
     } 
    } 

Ниже CSS код уль тега

.field-options-container { 
    z-index: 3000; 
    border: 1px solid #485c87; 
    background: #ffffff 50% bottom repeat-x; 
    color: #222222; 
    position: absolute; 
} 

Это диалоговое окно генерируется модальной плагин

<div class="ui-res-offer-dialog modal ui-res-offer-dialog-active in" role="dialog" aria-labelledby="basicModal" aria-hidden="false" data-backdrop="static" style="display: block;"> 
    <div class="ui-res-offer-dialog-container"> 
     <!-- some input fields here, too long I can't paste all of them --> 
    </div> 
</div> 

Это CSS диалоговые тегов

.modal { 
    overflow-y: scroll; 
    position: fixed; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    z-index: 1050; 
    outline: 0; 
    height: 1000px; 
} 
.ui-res-offer-dialog-container { 
    background: white; 
    border-radius: 5px; 
    box-shadow: 1px 2px 10px -2px rgba(0,0,0,0.85); 
    display: inline-block; 
    height: auto; 
    margin-top: 10%; 
    left: 40%; 
    overflow: hidden; 
    position: relative; 
    width: 380px; 
    color: black; 
} 

Для .ui-res-offer-диалог-con tainer, даже я меняю высоту с авто на статическое значение, раскрывающийся список все еще покрыт.

+6

Это будет очень сложно решить, не видя никакого кода. –

+0

Попробуйте установить положение выпадающего списка относительно. .drop-down {position: relative;} –

+0

Код очень много, но я могу описать его немного больше. Был такой div, как этот '

'. Я использовал '$ (". My-popup "). Modal (" show ")', чтобы отображать всплывающее окно, его плагин JQuery, который я верю. Затем я использовал JQuery для добавления этого '
  • ' под вводом, теги lu стилизованы как выпадающий список. Но выпадающий список имеет около 10 значений, вход почти в нижней части всплывающего окна, я могу видеть только 2 значения раскрывающегося списка, остальные были вне поля всплывающего окна, но они покрыты всплывающим окном вверху –

    ответ

    1

    Возможно, вы захотите убедиться, что overflow общего диалогового окна (а не списка) не установлен на hidden, что скроет все, что обычно будет расширяться из него, а статическая высота (в диалоговом окне) не будет (вероятно, это скорее). Высокого z-index будет недостаточно, если это так.

    ** Предполагаю, вы имеете в виду 'ul' not 'lu'?

    +0

    Вы правы, его ul, я сожалею ... :( Мы на самом деле просто хотим отобразить 10 элементов списка, поэтому, если у меня будет больше значения, я не буду генерировать более 10 лиговых тегов внутри. t указать значение переполнения и высоты вообще.Это может быть проблемой здесь.Я попробую это, большое вам спасибо.Я скоро вернусь. –

    +0

    О, вы имеете в виду переполнение и высоту для диалога, а не ul. Хорошо, Я проверю их. Спасибо. –

    +0

    Да, извините, я обновлю. –

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