母版页上的JQuery在ASP.NET中不起作用

时间:2014-01-15 11:50:01

标签: asp.net webforms

我在网络表单中使用此代码并正常工作但在母版页中无法正常工作

主人中的

 <link rel="stylesheet" href="css/FirstPage.css" />
    <link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.10.3.custom.css" />
    <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.10.3.custom.js"></script>
  <script type="text/javascript" src="js/slide.js"></script>
<script>
    $(document).ready(function () {
        $("div[id$='slide']").show('bounce');
        $("div[id$='content']").accordion({ fillSpace: true, collapsible: true, active: false });
    });

</script>

在主人的身体

enter code here                                          但它不起作用,此代码完全适用于Web表单但不能在母版页中工作为什么?

2 个答案:

答案 0 :(得分:2)

我怀疑这是因为您的控件ID将由内容占位符的ID前置。 使用下面的CSS选择器访问以id“slide”和“content”结尾的控件。希望有所帮助..

$("div[id$='slide']")

$("div[id$='content']")

答案 1 :(得分:2)

您的代码无法正常工作,因为默认情况下,Web表单页面(无论是常规页面还是母版页面)会为控件添加额外的前缀,如果它们放在实现INamingContainer接口的其他控件中。

如果您确定runat="server"上需要div属性,那么您可以使用内联代码并使用ClientID属性来获取生成的标识符:

$(document).ready(function () {
    $("#<%=slide.ClientID%>").show('bounce');
    $('#<%=content.ClientID%>').accordion({ fillSpace: true, collapsible: true, active: false });
});

或者,您可以使用ClientIDMode枚举来控制如何选择客户端标识符。在您的情况下,使用ClientIDMode.Static

<div runat="server" class="slide" id="slide" ClientIDMode="Static"></div>