在$(function(){之后jQuery未定义

时间:2016-03-17 16:26:55

标签: javascript jquery asp.net undefined

我似乎无法确定为什么会失败 - 任何想法? - >请参阅.aspx

custom.master 引用/和脚本

<link rel="stylesheet" href="/admin/css/custom.css" />
<script src="/admin/js/jquery-1.9.1.min.js"></script>
<script src="/admin/js/jquery-1.10.2-ui.min.js"></script>
<link href="css/ui-lightness/jquery-ui-1.8.13.custom.css" rel="stylesheet"/>
<asp:ContentPlaceHolder ID="HeadPlaceHolder" runat="server"></asp:ContentPlaceHolder>

<script>
    $(function () {
        var $ = jQuery.noConflict(); <-- This here is the culprit

在rPage.aspx中(MasterPageFile =&#34;〜/ admin / custom.master&#34;)

<asp:Content ID="Content1" ContentPlaceHolderID="HeadPlaceHolder" runat="server">
    <link href="css/bootstrap-3.3.5.min.css" rel="stylesheet" />
</asp:Content>

<script>
    $(function () {
        var $ = jQuery.noConflict(); //**Without this line the next line fails**
        $("#<%= txtStartDate.ClientID %>").datepicker();

错误:

来自控制台TypeError: $ is not a function rPage:380:13

来自调试器firefox dev edition

378 $(function () {
379        //var $ = jQuery.noConflict();
380        $("#ContentPlaceHolder_txtStartDate").datepicker();

1 个答案:

答案 0 :(得分:2)

查看(当前)发布的示例,我认为没有理由进行NoConflict调用。我假设这是因为您的示例代码中可能还没有显示其他库。

那说......

尝试将您的NoConflict声明移出您的立即调用函数表达式(IIFE)&amp;在你带上你的其他图书馆之前就已经正确了..

喜欢这样......

<script>
$.noConflict();
// Code that uses other library's $ can follow here.

$(function () {
     // Do awesome stuff here...
})();
</script>

我也建议......

将jQuery混淆到你的IIFE中......就像这样...

<script>
    $(function ($) {
         // Do awesome stuff here...
    })(jQuery);
</script>