我正在讨论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。
干杯。 雅各
答案 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,则事件不会冒泡,按钮也不会发布。