2012-01-07 6 views
1

У меня есть три метки, имеющие ниже код на все с различными идентификаторами и три дивы с различными идентификаторамиПоказать или скрыть DIV с ярлыка Нажмите

<asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="var b = ChangeColorCA(); this.style.cursor='pointer'; return b" onmouseout="RemoveColorCA()"></asp:Label>&nbsp; 

здесь ДИВ код для всех

<div id="DIV_CA" runat=server align="center" visible="false" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto;">Some data</div> 

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

ОБНОВЛЯТЬ Это мой скрипт Код

<script type="text/javascript"> 
    function hideshow(span) { 
    var div = document.getElementById("DIV_" + span.id); 
    if (div.style.display == "none") 
     div.style.display = "block"; 
    else 
     div.style.display = "none"; 
    } 
</script> 

и вот lablel код

<asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="var b = ChangeColorCA(); this.style.cursor='pointer'; return b" onmouseout="RemoveColorCA()" onclick="hideshow(this)" ></asp:Label>&nbsp; 

ответ

3

Вы можете написать JavaScript.

Markup:

<asp:Label ID="CA" 
       runat="server" 
       onclick="hideshow(this)" 
       Text="Label"> 
</asp:Label> 
<div id="DIV_CA" 
    runat=server 
    align="center" 
    style="background-color:#f3f3f3; text-align: 
      left; width: 500px; height: 470px; overflow:auto; display:none;"> 
     Some data 
</div> 

JavaScript:

function hideshow(span) { 
    var div = document.getElementById("DIV_" + span.id); 
    if (div.style.display == "none") 
     div.style.display = "block"; 
    else 
     div.style.display = "none"; 
    } 

EDIT: Для того, чтобы скрыть все дивы и показать конкретный DIV.

Markup: поставить все <asp:Label/> и <div> внутри другого <div/>

<div id="allDiv"> 
     <asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="this.style.cursor='pointer'; " onclick="hideshow(this)"></asp:Label> 
     <asp:Label ID="CB" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="this.style.cursor='pointer'; " onclick="hideshow(this)"></asp:Label> 
     <div id="DIV_CA" runat="server" align="center" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto; display:none;">Some data1</div> 
     <div id="DIV_CB" runat="server" align="center" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto; display:none;">Some data2</div> 
</div> 

JavaScript: функция hideDiv() установить display:none для всех дочерних дел.

<script type="text/javascript"> 
    function hideshow(span) { 
     hideDiv(); 
     span.style.fontWeight = "bold"; 
     var div = document.getElementById("DIV_" + span.id); 
     if (div.style.display == "none") 
      div.style.display = "block"; 
     else 
      div.style.display = "none"; 
    } 
    function hideDiv() { 
     var childDiv = document.getElementById("allDiv").childNodes; 
     for (i = 0; i < childDiv.length; i++) { 
      if (childDiv[i].tagName == "DIV") { 
       childDiv[i].style.display = "none"; 
      } 
      if (childDiv[i].tagName == "SPAN") { 
       childDiv[i].style.fontWeight = "normal"; 
      } 
     } 
    } 
</script> 
+0

OK Проверьте обновление –

+0

Да Его выделение жирным шрифтом всех ярлыков, но не превращение их в нормальное состояние, когда я нажимаю следующую метку –

+0

YEs Я скопировал код ура, как он выше –

2

использовать этот способ в JQuery:

$("#<%= CA.ClientID %>").click(function(){ 

    $("#<%= DIV_CA.ClientID %>").toggle(); 

}); 
+0

Я исправил его, извините –

+0

Посмотрите, я изменил «ClietID» на «ClientID». Эта синтаксическая ошибка вызывает эту ошибку, которую вы вложили в свой комментарий. –

+0

ничего, этот код выполняется, когда пользователь нажимает на lable и переключает DIV.just добавляет этот код в тег скрипта –

0

Это будет отлично работает:

<asp:Label CssClass="clickLabel" Text="text" ID="id1" runat="server" ClientIDMode="Static">id1</asp:Label><br/> 
<div id="div_id1" class="someclass" style="color:Red; display:none;">red</div> 
<br/> 
<asp:Label CssClass="clickLabel" Text="text" ID="id2" runat="server" ClientIDMode="Static">id2</asp:Label><br/> 
<div id="div_id2" class="someclass" style="color:blue; display:none;">blue</div> 
<br/> 

<asp:Label CssClass="clickLabel" Text="text" ID="id3" runat="server" ClientIDMode="Static">id3</asp:Label><br/> 
<div id="div_id3" class="someclass" style="color:green; display:none;">green</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".clickLabel").click(function() { 
      var div_id = "#div_" + $(this).attr("id"); 
      $(".someclass").not(div_id).css("display", "none"); 
      $(div_id).css("display", "block"); 
     }); 
    }); 
</script> 
+0

NOt wroking Sir –

+0

Он работает отлично.Три новая версия.it имеет более подробную информацию :) – MDP

0

1) Создание двух классов CSS; divClass и divVisible. Один для всех div, а другой для видимого div.

2) Зарегистрировать событие OnClientClick на этикетке (ы) со ссылкой на функцию JavaScript; showHideDiv.

3) В функции JavaScript, скрыть все дивы с видимым класса и использовать идентификатор ярлыка, чтобы найти и показать правильный DIV.

function showHideDiv(el) 
{ 
    var id = el.getAttribute('id'); 
    var div = document.getElementById('DIV_' + id); 
    var hideVisibleDiv = document.getElementsByClassName('divVisible'); 

    for(var e in hideVisibleDiv) 
    { 
    hideVisibleDivs[e].className = 'divClass'; 
    } 
    div.className = 'divClass divVisible'; 
} 

Что-то в этом роде ...

0

, если вы используете панель обновления на странице вы должны использовать этот код, чтобы получить Причина:

Sys.WebForms.PageRequestManager.getInstance() add_endRequest. (AsyncPostback);
Функция AsyncPostback() {// здесь вставляем код};
, потому что ваш код javascript не может работать после одной обратной передачи.
Удачи!

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