2011-06-22 63 views
3

我正在將一個應用程序移入使用c#的asp.net,它已經有一些javascript了。在asp.net中的javascript和css

我有以下的javascript功能:

function toggle(id) { 
    var tog = document.getElementById(id); 
    if (tog == null) { return; } 
    var bExpand = tog.style.display == ''; 
    tog.style.display = (bExpand ? 'none' : ''); 
} 

,我叫它<a href="javascript:void(0);" onclick="toggle('programinfo');" class="nobold">[-]</a>

,你可以看到,它的唯一的事情是沒有切換顯示屬性設置爲空白,使得id'programinfo'顯示或不顯示。

來自coldfusion它完美的工作,我只是有一個名爲programinfo的div,它會顯示或不顯示該div的內容,每次鏈接被點擊。但是,現在它什麼都不做。如果我在值tog.style.display上添加警報,它會顯示一個空白值或值none,所以我知道它正在獲取該值,但它不再翻轉該值。

我已經在div和表格上試過了,什麼都沒有。然後我甚至嘗試添加一個style="display:none;"屬性到默認情況下讓它消失,但即使這樣也行不通。

我在這一點上唯一的猜測是它與asp的東西,但我找不到它,所以我不知道。有沒有人有任何想法?謝謝。

編輯 - 請求將HTML輸出到瀏覽器:

<table width="100%" border="0" class="dgbc" cellspacing="0" cellpadding="5"> 
    <tr> 
     <td colspan="12" class="section_header" style="background-repeat:no-repeat;background-image:url(images/tms_side1.jpg);margin:0;background-position:right;"> 
      <span style="float: right;"><a href="javascript:void(0);" onclick="toggle('programinfo');" class="nobold">[-]</a></span> 
      PROGRAM INFO 
     </td> 
    </tr> 
    <tr> 
     <td valign="top"> 
      <table width="100%"> 
       <div id="programinfo" style="display:none;"> 
        blah blah blah 
       </div> 
      </table> 
     </td> 
    </tr> 
</table> 
+0

頁面是否在'.Master'頁面中? –

+0

和你試圖切換的div是一個asp.net服務器控件還是隻是一個普通的html div? – adt

+2

似乎正常工作http://jsfiddle.net/T8Y59/ –

回答

1

我認爲你是我面臨的問題是HTML標記無效使用。

  <table width="100%"> 
       <tr> 
        <td> 
         <div id="programinfo" style="display: none;"> 
          blah blah blah 
         </div> 
        </td> 
       </tr> 
      </table> 

將div標籤放在td和tr中。您將解決問題。這個問題在IE6和IE7中仍然存在。希望這可以幫助。

0

如果您從"display:none"開始,然後將顯示器切換爲空白,將顯示什麼內容?在CSS中是否有"display:block"?你可以嘗試切換到'block'而不是什麼?