【发布时间】:2012-05-31 22:24:20
【问题描述】:
更新:我确实使用谷歌浏览器尝试了这个网站,结果与 IE 相同
更新:我确实将 Default.aspx 脚本更改为
$("#btnSearch").click(function () {
和按钮
<asp:Button ID="btnSearch" runat="server" Text="Search" ClientIDMode="Static" />
我已经使用 Ajax 控制工具包好几年了。想玩jQuery。我无法获得一个简单的 jQuery 教程来工作。我正在使用教程学习 jQuery:
jquery_webforms_Using_Animations
在本教程中 - 我跳到只是试图弹出一个对话框 - 在本例中是一个搜索窗口。
我使用 Visual Studio 2010 创建了一个新网站。 Visual Studio 会自动创建母版页、默认页、scripts 文件夹中的 jquery 脚本等。
我将 ScriptManager 添加到母版页。我从母版页中删除了登录内容——因为我不需要 jquery 教程的额外复杂性。
我删除了 Visual Studio 在 Default.aspx 的“BodyContent”中创建的内容。
我将加载 jquery 的脚本命令添加到 Default.aspx 的标头内容中。我添加了一个简短的脚本,将事件处理程序附加到按钮以弹出对话框。我发出了几个警报,看看是什么在触发。
在内容正文中,我添加了一个将弹出对话框的按钮,并添加了将弹出的对话框。
我编译并运行应用程序,我的 Default.aspx 出现了,我可以单击“搜索”按钮,它确实回发了 - 但没有警报,也没有弹出对话框。
我无法想象一个更简单的示例 - 但它不起作用。有任何想法吗?谢谢。
母版页:
<%@ Master Language="VB" AutoEventWireup="false" CodeFile="Site.Master.vb" Inherits="Site" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div class="page">
<div class="header">
<div class="title">
<h1>
My ASP.NET Application
</h1>
</div>
<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
</Items>
</asp:Menu>
</div>
</div>
<div class="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</div>
<div class="clear">
</div>
</div>
<div class="footer">
</div>
</form>
</body>
</html>
这里是 Default.aspx
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript" />
<script type="text/javascript" language="javascript">
$(document).ready(function () {
alert("Setting Click event handler");
$("<%=btnSearch.clientID%>").click(function () {
alert("Showing dialog");
$("#searchdialog").slideDown("slow");
});
});
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="btnSearch" runat="server" Text="Search" />
<div id="searchdialog" style="position: absolute; top: 65px; right: 5px; width: 200px;
display: none;">
<div>
Search For Symbol</div>
<div>
Enter a symbol:
<input type="text" name="txtSymbolSearch" id="txtSymbolSearch" value="" />
<input type="button" id="btnSymbolSearch" value="Search" />
</div>
</div>
</asp:Content
【问题讨论】:
-
为什么有两个搜索按钮?其中一个是 .net 控件,另一个是纯 html
-
是你的警报(“设置点击事件处理程序”);开火?
-
两个警报都没有出现。我也认为这是问题的根源......但我不知道为什么它不会在准备好的文档上连接事件处理程序?
-
我在谷歌上搜索其他关于文档准备好未触发的帖子,它说 jquery 没有加载。所以我将我的行改为 jquery 作为 然后警报开始触发
标签: jquery asp.net master-pages