簡體   English   中英

為什么會收到“未捕獲的ReferenceError:未定義$(匿名函數)”

[英]Why do I get an “Uncaught ReferenceError: $ is not defined (anonymous function)”

我有一個cshtml頁面,給出了以下錯誤:

Uncaught ReferenceError: $ is not defined               TabNotes:2
(anonymous function)                                    TabNotes:2
TabNotes:12Uncaught ReferenceError: ko is not defined   TabNotes:12
(anonymous function)                                    TabNotes:12
(anonymous function)                                    TabNotes:23

什么會導致這種錯誤? 我找不到任何原因。 我嘗試將javascript函數包裝在$(document).ready(function(){中,但這也不起作用。代碼如下

@model test.Web.Framework.Areas.Administration.Models.TabNotesModel 
@using (UI.DocumentReadyScript())
{    
    if (Model.meta.id.HasValue)
    {
        UI.jQuery("#tbl" + Model.meta.modelname).flexigrid(Model.Grid);
    }
}
<form method="post" action="@Url.Action("TabNotes", new { cmd = "refresh" })" id="@Model.meta.modelname">
<div class="ui-state-highlight ui-corner-all highlight" data-bind="visible: meta.message">
    <span class="ui-icon ui-icon-info"></span><strong data-bind="text: meta.message">
    </strong>
</div>
@using (UI.BeginBlock("Administation.TabNotes", UI.Label("Notes", "Notes").ToString(), test.Web.Framework.Core.enumIcons.pencil, false, false))
{
    <table id="@("tbl" + Model.meta.modelname)">
    </table>
} 
</form>
<script type="text/javascript">
(function() {
        var viewModel=ko.mapping.fromJS(@Html.Raw(UI.JavascriptEncode(Model)));
        viewModel.getData=function() { return ko.mapping.toJSON( this  ); };   
        viewModel.setData=function(data){ 
        $('#tbl'+this.meta.modelname()).flexigrid( data.Grid);
        ko.mapping.updateFromJS(this,data); 
        };
        $('#@Model.meta.modelname').koform({viewmodel: viewModel , validate : {errorElement:'p' }  } );
        $('#@Model.meta.modelname').koform('applyBindings');
        $('#load-partial').click(function() {
            $('#partial').load('@Html.Raw(@Url.Action("CreateNote", "Entity", new {modelEntity = @Model.meta.entity, itemId = @Model.meta.id}))');
        }); 
    })(); 
</script>


<div id="partial"></div>
<button type="button" id="load-partial">Create Note</button>

編輯:jQuery從母版頁加載。

這意味着未定義jQuery( $ )和剔除( ko )。 當執行腳本時尚未加載庫時,通常會出現這種情況。

確保在使用框架之前先加載框架(即,將與框架相關的腳本標記插入到頁面級腳本之前)。 如果這樣很好,請在開發人員面板中檢查您的網絡活動,以查看下載框架時是否收到錯誤的請求。 可能是您異步加載了框架,這意味着您需要一個異步處理程序才能開始執行頁面級腳本。

您在代碼中的哪里引用KO和jQuery? 通常會發生此錯誤,因為您的代碼嘗試在引用加載之前運行。

我建議使用Fiddler或其他網絡活動工具來觀察何時加載(或不加載)引用以及從何處加載引用。

嘗試將jQuery ui小部件合並到我的網站時,出現此錯誤問題。 我必須更新包含的css文件的正確路徑; 有時可能會很挑剔。 還必須對jquery做同樣的事情。 還要注意關於“ src =“ / code / blah_folder”所在位置的本地主機。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM