标记一下转来的文章,最终使用的方法是解决方法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 文件的绝对地址。不完全肯定是怎么回事与那个。

 posted on 2015-07-01 11:31  纳米程序员  阅读(547)  评论(0编辑  收藏  举报