2012-11-24 3 views
0

나는 openbag() 함수를 가지고있다. div를 여는 데 사용됩니다. 이 div는 클릭시 열리고 addClass는 "활성"입니다. 하지만 난 서버 쪽에서이 div를 열고, 함수 openbag();를 호출합니다. 문제는이 div가 매번 다른 페이지를 새로 고침 할 때 열리는 것입니다. "활성"클래스를 제거하고 클래스가 그렇지 않은지를 확인했지만 항상 표시됩니다. 여기 내 코드를 사용하고 있습니다. C#에서jQuery로 클래스/id로 div를 숨기는 법

function openBag() { 
    $("#bag").addClass("active"); 
    $("#expanding-bag").slideDown("fast"); 
    } 


$(document).ready(function() { 
    if ($("div#bag").hasClass("active")) { 
     $("#expanding-bag").show(); 
     $("#bag").removeClass("active"); 
    } 

    else { 
     $("#expanding-bag").hide(); 
    } 

:

Page.ClientScript.RegisterStartupScript(typeof(Page), "alert", "<script language='javascript'>openBag();</script>"); 
+0

"# bag"요소가'class = "active"로 제공되거나 무언가가 페이지로드시'openBag()'를 호출 중입니다. –

+0

그래서 네가 원하는게 네 div는 다음 새로 고침이나 다른 것에서 닫혀 야한다. 내가 잃어 버렸어. –

답변

1

당신은 그것을 공개하지 않도록하고 그 모든 것을 닫은 뒤에 코드에서 자바 스크립트를 조작 지시 할 수있다. 하나의 트릭은 리터럴 사용하고 표시 여부, 그리고 그 안에 배치하는 것입니다 같은 코드 :

<asp:Literal runat="server" id="ShowIt" Visible="false" EnableViewState="false"> 
$(document).ready(function() { 
    $("#expanding-bag").show();  
} 
</asp:Literal> 

<asp:Literal runat="server" id="HideIt" Visible="false" EnableViewState="false"> 
$(document).ready(function() { 
    $("#expanding-bag").hide(); 
} 
</asp:Literal> 

하고 ShowIt.Visible=true을 뒤에 코드에; 당신이 달리고 싶은 사람.

다른 방법은이 코드를 코드 숨김 페이지에서 렌더링하는 것입니다.

+0

Literan ..../Literal? –

+0

멋진 바나나 @Aristos –

1

당신은 또한이 방법은 서버 측에 확장 가방을 당신의

expandingbag to runat="server"

액세스를 넣어 시도 할 수 있습니다 당신은 코드

다음 제어 사용을 숨길 때 expandingbag.Style.add ("display", "none");

또는 표시해야 할 때 다음 ("상속" "디스플레이")

expandingbag.Style.add를 사용;

관련 문제