jQuery AJAX - 返回的HTML消失了

时间:2010-03-01 20:09:16

标签: jquery ajax

我正在讨论jQuery AJAX并且偶然发现了一个奇怪的问题(或者说我缺乏理解:)。这是我的主要ASPX页面的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="jQuery_Test.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#btnGo').click(function() {
                $.ajax({
                        type: "GET",
                        url: 'GetValues.aspx',
                        contentType: 'text/html',
                        success: function (html) { $("#Yo").append(html); }
                });
            })
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <p id="Yo">Yo there!</p>
        <br />
        <a href="#" class="yo">Yo there!</a>
        <br />
        <a href="#">I'm in a DIV!</a>
        <br />
        <button id="btnGo">Go</button>
    </div>
    <br />
    <br />
    <a href="#">I'm not in a DIV!</a>
    </form>
</body>
</html>

这是'GetValues.aspx'页面的代码隐藏:

使用System;

namespace jQuery_Test
{
    public partial class GetValues : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.ContentType = "text/html";
            Response.Write("<a href='#'>Hello World</a>");
            Response.End();
        }
    }
}

我正在做的是,当在主页上点击“开始”按钮时,我希望将锚标记放在一个段落旁边。

代码确实有效,但是,'Hello World'锚点出现约1秒然后消失。有人可以指出我做错了什么吗?我正在使用VS 2010 Ultimate附带的jQuery-1.3.2.mins.js。

干杯。 雅各

2 个答案:

答案 0 :(得分:3)

使您的功能return false;

    $(document).ready(function () {
        $('#btnGo').click(function() {
            $.ajax({
                    type: "GET",
                    url: 'GetValues.aspx',
                    contentType: 'text/html',
                    success: function (html) { $("#Yo").append(html); }
            });

            return false;
        })
    });

答案 1 :(得分:0)

运行处理程序代码后,按钮继续执行其正常功能(发布到页面)。如果您在处理程序结束时返回false,则事件不会冒泡,按钮也不会发布。