jQuery AJAX - возвращенный HTML исчезает - PullRequest
3 голосов
/ 01 марта 2010

Я слоняюсь с 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':

с использованием системы;

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 секунду и затем исчезает. Может кто-нибудь указать, что я делаю не так? Я использую jQuery-1.3.2.mins.js, который поставляется с VS 2010 Ultimate.

Приветствия. Иак.

Ответы [ 2 ]

3 голосов
/ 01 марта 2010

сделай свою функцию 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;
        })
    });
0 голосов
/ 01 марта 2010

Как только ваш код обработчика запускается, кнопка запускается и выполняет свою обычную функцию (отправка на страницу). Если вы вернете false в конце вашего обработчика, событие не будет пузыриться, и кнопка не будет отправлять сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...