2013-09-26 151 views
0

我有一個javascript,我正在動態更改列表的css類。回發後丟失css類

我的列表:

<div class="BreadCrumbDiv"> 
      <ul id="breadcrumbs-two"> 
       <li><a href="#" onclick="changeClass(a1);" class="current1" id="a1">Step1 
        and user</a></li> 
       <li><a href="#" onclick="changeClass('a1');" id="a2">Step2</a></li> 
       <li><a href="#" onclick="changeClass('a1');" id="a3">Step3</a></li> 
       <li><a href="#" onclick="changeClass('a1');" id="a4">Step4</a></li> 

      </ul> 
     </div> 

的Java腳本:

function changeClass(elementid) { 
     var lis = document.getElementById(elementid); 
     lis.className = "current"; 
     lis.className = "current1"; 
    } 

現在從我的按鈕,我打電話這樣

<asp:button id="btnNextODCDetails" runat="server" text="Next" cssclass="Button" onclientclick="changeClass('a2');"/> 

但改變CSS樣式的JavaScript不工作一次回帖正在發生。我不想使用更新面板。請有人幫助我。

由於提前 Gulrej

+0

u能張貼的CSS以及 – Sasidharan

+0

首先改變的onclick = 「changeClass(A1);」 to onclick =「changeClass('a1');」 – Shadow

+0

你也在做服務器端處理嗎?如果你是你的頁面將回發並刷新 – Pete

回答

1

當你回傳數據,控制樹將再次從ASPX標記來創建。 因此,無論您對客戶端的html元素所做的更改都會丟失。

+0

正確,但有什麼辦法保留CSS。 – Gulrej

0

當頁面完全發佈並再次呈現時,您將失去所有客戶端代碼(JS)更改。

如果你仍然需要,那麼使用隱藏字段或某些東西堅持信息,並檢查相同的頁面加載並將其設置在客戶端。

你可以使用

jQuery的這個客戶端代碼:

$(document).ready(function(){ // your checking}); 

的JavaScript:DOMContentLoaded

<script> 
    document.addEventListener("DOMContentLoaded", function(event) { 
    console.log("DOM fully loaded and parsed"); 
    }); 
</script> 

IE:

object.addEventListener("DOMContentLoaded", handler, useCapture) //IE model 
+0

嗨Murli,你能給我一些例子鏈接。其實我不明白。 – Gulrej

0

我得到了答案。我已經改變了我的劇本。我點擊了我的按鈕事件後調用了該腳本。

string script = " $(document).ready(function() { $('#breadcrumbs-two li #a2').addClass('current'); $('#breadcrumbs-two li #a2').removeClass('current'); $('#breadcrumbs-two li #a2').addClass('current1'); });"; 
     ClientScript.RegisterClientScriptBlock(this.GetType(), "function", script, true); 

Gulrej