如题 小菜才学jquery,现在就是想做一些效果:我在A.aspx页面点击一个按钮 这个按钮调用js从而打开B.aspx页面,B.aspx页面是逐渐显示出来,也就是由透明到实体的一个过程!B.aspx页面中t有个type=submit的button按钮 每次点击这个按钮时页面都会 再次执行由透明到实体的过程 有没有什么方法使B这个页面只在第一次加载的时候才逐渐显示出来 附上我的部分jquery 代码A.aspx 中点击button执行的JS的code:function OpenNew(){
  window.open("B.aspx","","menubar=no,scrollbars=no,resizable=no,location=no,status=no",true); 
}
 B.aspx 中的jquery的code:$(document).ready(function(){$("body").hide() .fadeIn(3000);  });

解决方案 »

  1.   

    return 函数名 这样就不会再执行 你返回false
      

  2.   

    只能页面提交重新打开时候,就会执行ready函数。那么就会运行一次
    除非你不open放在同一页面或是用div模拟open,然后控制值显示一次
      

  3.   

    那样的话 就不会执行服务器端的事件了  B.aspx页面中body标签我是设置了onload= OpenNew()  还有没有其他的方案???
      

  4.   


    点击button是执行后台.cs文件中的_Click事件 与open 无关啊 
    用div模拟open,然后控制值显示一次 这个我试试
      

  5.   

    hide()本身可以带参数的,如“slow”、"fast",或者直接写数值,如2000,500之类的。用来控制隐藏的快还是慢。
      

  6.   

    hoojo 仁兄 
    如果用div模拟open,然后控制值显示一次  既要设置z-index 又要设置颜色 好像做的工作量有点多 
    我就只想问一下还有没有其他解决方案?      
      

  7.   

    !ispostback的时候才输出 
    $(document).ready(function(){$("body").hide() .fadeIn(3000); });
    这样,postback的时候就不会执行了
      

  8.   


    后台用jquery?不行啊 那个方法我早试过了 if(!IsPostBack)
    {
    Response.Write("<Script>$(document).ready(function(){$('body').hide() .fadeIn(3000); });
    </Script>"); 
    }那样引用不到jquery,要报错“缺少对象”
      

  9.   

    直接在B.aspx页面后台调用前台的函数
     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "", "OpenNew();", true);
                }
            }
    B.aspx前台内容为
    [code=HTML]<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>    <script src="jquery-1.4.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            function OpenNew() {
                $("body").hide("slow").fadeIn(10000);
            }
        </script>
    </head>
    <body style="background-color:Blue;">
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <input id="Button2" type="submit" value="button" runat="server"/>
            <input id="Text1" type="text" />
        </div>
        </form>
    </body>
    </html>code]
      

  10.   

    B.aspx前台内容为
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>    <script src="jquery-1.4.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            function OpenNew() {
                $("body").hide("slow").fadeIn(10000);
            }
        </script>
    </head>
    <body style="background-color:Blue;">
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <input id="Button2" type="submit" value="button" runat="server"/>
            <input id="Text1" type="text" />
        </div>
        </form>
    </body>
    </html>
      

  11.   


    var b="0"+window.name;
    if(b.length<=1)
    {
       alert("第一次加载");
       window.name=window.name+1;
    }
    如果不是关掉B页面而只是刷新B页面的话,这段代码可以胜任,
      

  12.   


    <%
    if (!Page.IsPostBack)
    {
    %><script>alert('!!!!')</script><%
    }
    %>
    放到前台页面看看~
    只有第一次才弹出!!!!
    postback的时候不会……
      

  13.   

    问题解决了 谢谢各位 总结一下:
    用10楼的方法可以 
    而10楼的方法让我想起了另一个函数方法
    ScriptManager.RegisterStartupScript(this, this.GetType(), "", "openNew()", true);这种方法也可以13楼的方法也行 只不过要将代码放入body标签内