标记一下转来的文章,最终使用的方法是解决方法4:
解决方法 4:
请确保在母版页中添加该 jQuery。既然您有此控件:
<asp:Button ID="myButton" runat="server" Text="Submit" />
您可以自动为此 javascript:
$(document).ready(function() {
$('[id$=myButton]').click(function() { alert('button clicked'); });
});
$(document).ready()
完全加载 DOM 时的火灾和所有元素应在那里。您可以简化这进一步与
$(function() {});
选择器语法 $('[id$=myButton]')
搜索基于自己的 id 属性的元素,但只在字符串的末尾匹配。相反,'[id^=myButton]'
将匹配的开始,但为了过滤掉,不是非常有用的 UniqueID。有很多很多更有用选择器可以使用 jQuery。学习他们所有,和你的工作很多,将为您完成。
问题是 ASP.Net 将创建一个唯一的 id 和使查找这些困难的每个元素的名称属性。使用它您将需要通过在的服务器 UniqueID 属性,javascript,但 jQuery 使该不必要。
jQuery 的选择器的权力,可以直接在您的 javascript 代码中分离从服务器端共和自动事件 javascript。您不会添加到标记了,有助于提高可读性,使更容易重构的 javascript。
解决方法 1:
编辑
正如 @ 亚当在评论中指出,有一种本机 jQuery 机制,基本上不会相同,黑客在我原来的答复。使用 jQuery,您可以执行
$('[id$=myButton]').click(function(){ alert('button clicked'); });
我的黑客最初开发的 ASP.NET,并适应它的原始答案周围工作原型。请注意,jQuery 基本上不会下罩同样的事情。我建议使用 jQuery 方法虽然,在执行我的黑客攻击。
留下评论上下文在原来的答复
在使用母版页时 ASP.NET mangles 取决于页上的控件的名称。您需要找不出一个办法,找到正确的控件将处理程序添加到 (假定您要添加的 javascript 的处理程序)。
我使用此函数来执行的:
function asp$( id, tagName ) {
var idRegexp = new RegExp( id + '$', 'i' );
var tags = new Array();
if (tagName) {
tags = document.getElementsByTagName( tagName );
}
else {
tags = document.getElementsByName( id );
}
var control = null;
for (var i = 0; i < tags.length; ++i) {
var ctl = tags[i];
if (idRegexp.test(ctl.id)) {
control = ctl;
break;
}
}
if (control) {
return $(control.id);
}
else {
return null;
}
}
然后您可以执行类似操作:
jQuery(asp$('myButton','input')).click ( function() { alert('button clicked'); } );
您的孩子在网页上有以下
<asp:Button ID="myButton" runat="server" Text="Click Me" />
解决方法 2:
如果您的站点已在其他文件夹中的内容页,您可以使用页的 ResolveUrl
src 路径中的方法将确保总是可以找到您的 js 文件:
<script type="text/javascript" src='<%= ResolveUrl("~/Scripts/jquery-1.2.6.min.js") %>' ></script>
解决方法 3:
只需移,< 脚本类型 ="文本/javascript"src="jquery.js"/ 大于到母版页中的头标记的标记。然后您可以在所有的内容页中使用 jquery。
没有有关使用母版页的 jQuery 的魔法。
解决方法 4:
请确保在母版页中添加该 jQuery。既然您有此控件:
<asp:Button ID="myButton" runat="server" Text="Submit" />
您可以自动为此 javascript:
$(document).ready(function() {
$('[id$=myButton]').click(function() { alert('button clicked'); });
});
$(document).ready()
完全加载 DOM 时的火灾和所有元素应在那里。您可以简化这进一步与
$(function() {});
选择器语法 $('[id$=myButton]')
搜索基于自己的 id 属性的元素,但只在字符串的末尾匹配。相反,'[id^=myButton]'
将匹配的开始,但为了过滤掉,不是非常有用的 UniqueID。有很多很多更有用选择器可以使用 jQuery。学习他们所有,和你的工作很多,将为您完成。
问题是 ASP.Net 将创建一个唯一的 id 和使查找这些困难的每个元素的名称属性。使用它您将需要通过在的服务器 UniqueID 属性,javascript,但 jQuery 使该不必要。
jQuery 的选择器的权力,可以直接在您的 javascript 代码中分离从服务器端共和自动事件 javascript。您不会添加到标记了,有助于提高可读性,使更容易重构的 javascript。
解决方法 5:
参考,Jquery.js 文件中,MasterPage 头中,如下所示:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.min.js"></script>
(某些浏览器不喜欢结束它的 / 〉)
然后,您可以编写类似的东西
$('#<%= myBtn.ClientID%>').show()
在您的 javascript 确保引用一个在客户端代码中的 ASP.Net 控件时使用该客户机的 id。这将处理任何"重整"的名称和控件的 id。
解决方法 6:
亚当的解决方案是最好的。简单 !
主页面:
<head runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
内容页:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript">
$(document).ready(function () {
$("[id$=AlertButton]").click(function () {
alert("Welcome jQuery !");
});
});
</script>
</asp:Content>
按钮在哪里
<asp:Button ID="AlertButton" runat="server" Text="Button" />
解决方法 7:
主页面:
jQuery 库在母版页中去。如果路径正确的引用,请参阅。您可能要添加额外的文档,像这样:
<head>
<script type="text/javascript" src="/Scripts/jquery-1.2.6.min.js"></script>
<% if (false) { %>
<script type="text/javascript" src="/Scripts/jquery-1.2.6-vsdoc.js"></script>
<% } %>
</head>
主页面:
<head>
<script type="text/javascript">
$(document).ready(
function()
{
alert('Hello!');
}
);
</script>
</head>
隐藏的内容页和用户控件:
this.textBox.Attributes.Add("onChange",
String.Format("passElementReferenceToJavascript({0})", this.textBox.ClientID));
解决方法 8:
签出这一职位:
http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx
此外介绍了如何获取 jQuery 的视觉工作室的智能。
解决方法 9:
我也开始用最简单的例子,没有运气。我最后不得不,jquery.js 文件 以外 的添加,<head>
母版页的部分。这是我能得到任何东西,在 Firefox 中工作的唯一方法 (没有尝试其他浏览器只是尚未)。
我也不得不引用.js 文件的绝对地址。不完全肯定是怎么回事与那个。