2013-11-08 3 views
0

Так у меня есть JQuery множественного выбора выпадающем DropDownBox'е (Флажки внутри капли вниз)
Я пытался реализовать this так, что он будет выглядеть меню, которое Выдвижной на наведите указатель мыши на предоставленный div. так вот мой кодДисплей: Нет уничтожает рендеринг других JQuery объектов

ASP код:

<div class="box"> 
     SORT? 
     <div class="hiddencolumn" style="position: absolute; background-color:Black; height:auto;"> 
      <asp:DropDownList ID="CompanyDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="RegionDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="AreaDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="BranchDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="StorageGroupDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="SORDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="TicketDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="KaratDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="PORIGINDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="StatusDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="ClassificationsDropDownList" Class="s10" runat="server" AppendDataBoundItems="True"> 
      </asp:DropDownList> 
      <br /> 
      <asp:Button ID="SortButton" runat="server" Text="Sort" OnClick="SortButton_Click" /> 
     </div> 
    </div> 

JavaScript для коробки ниспадающего контрольного списка и парить FadeIn

<script language="javascript" type="text/javascript"> 
     $(document).ready(function()  
     {     

      $(".s10").dropdownchecklist({ firstItemChecksAll: true,forceMultiple: true, onComplete: function(selector) { 
       var values = ""; 
       for(i=0; i < selector.options.length; i++) { 
        if (selector.options[i].selected && (selector.options[i].value != "")) { 
         if (values != "") values += ";"; 
         values += selector.options[i].value; 
        } 
       } 
       alert(values); 
      } }); 


      $(function(){ 
    $(".box").hover(function(){ 
     $(this).find(".hiddencolumn").fadeIn(); 
    } 
        ,function(){ 
         $(this).find(".hiddencolumn").fadeOut(); 
        } 
        );   
}); 

    }); 
    </script> 

Css

.hiddencolumn 
{ 
     display: none; 
} 

когда я удалить скрытый класс колонки на (например, удалить display:none;)
Rendering правильно так:
a проблема, когда я добавил hiddenColumn класса или добавлены display:none на DIV это то, что делает

b

Любая помощь? или работать? любой гид был бы очень оценен.

+1

Используйте 'visibility: hidden' вместо' display: none', чтобы сохранить пространство, выделенное элементу в макете. – Anthony

+0

@ Энтони, если я использую 'видимость: скрытый', jquery для' fadein() 'не работает, поэтому в случае этого, хотя я наводил указатель мыши на div, он не будет отображаться так, как я хотел, если вы можете дайте альтернативный jquery, пожалуйста, отправьте его как ответ спасибо :) – user2705620

ответ

1

Основываясь на similar question, вы могли бы повторить ваш fadeOut и fadeIn с:

// FadeOut with visibility : hidden 
$(this).find(".hiddencolumn").fadeOut("slow", function() { 
    $(this).show().css({visibility: "hidden"}); 
}); 

// FadeIn with visibility : visible 
$(this).find(".hiddencolumn").hide().css({visibility: "visible"}).fadeIn("slow"); 

Проблема заключается в том, что display: none фактически не удаляет элемент из компоновки, поэтому он больше не имеет высоту или ширину, которые влияют на другие элементы, в то время как простое изменение элемента opacity, например, с .animate({opacity:1}), делает элемент 100% непрозрачным, но элемент по-прежнему реагирует на события, такие как щелчки мыши. visibility: hidden - единственное правило CSS, которое отображает контур элемента в макете, но не представляет его пользователю.

+0

Этот ответ действительно подходит, я просто использовал '$ (this) .find (". hiddencolumn "). hide(). css ({visibility:" visible "}) .fadeIn ("slow"); 'и для скрытия' function() { $ (this) .find (". overlay"). fadeOut(); } ); ' – user2705620

0

использование max-height:0, overflow:hidden изначально, а также набор для наведения max-height:auto.

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