0x800a138f - JavaScript runtime error: Unable to get property 'fn' of undefined or null reference

0x800a138f - JavaScript runtime error: Unable to get property 'fn' of undefined or null reference

我正在尝试做这个例子http://jsfiddle.net/pmrotule/w7aakdbb/54/

我收到这个异常

0x800a138f - JavaScript 运行时错误:无法获取 属性 'fn' 未定义或空引用。 和 0x800a01b6 - JavaScript 运行时错误:对象不支持 属性 或方法 'multiselect'。 此时在 bootstarp-multiselect.js

中抛出错误
$.fn.multiselect = function(option, parameter, extraOptions) {
    return this.each(function() {
        var data = $(this).data('multiselect');
        var options = typeof option === 'object' && option;

        // Initialize the multiselect.
        if (!data) {
            data = new Multiselect(this, options);
            $(this).data('multiselect', data);
        }

        // Call multiselect method.
        if (typeof option === 'string') {
            data[option](parameter, extraOptions);

            if (option === 'destroy') {
                $(this).data('multiselect', false);
            }
        }
    });
};

我的HTML代码:

<script src="~/Scripts/bootstrap-multiselect.js"></script>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<link href="~/Content/bootstrap-multiselect.css" rel="stylesheet" />
<script src="~/Scripts/bootstrap.js"></script>
<select id="ddlCars" multiple="multiple">
   <option value="Accord">Accord</option>
   <option value="Duster">Duster</option>
   <option value="Esteem">Esteem</option>
   <option value="Fiero">Fiero</option>
</select>
<script>
   $('#ddlCars').multiselect();
</script>

我在 VS2013 中使用 ASP.NET MVC 项目。 我得到这个例外 我对 JS 和 BootStarp 很陌生。

报错说的是$ is not yet defined (在执行bootstarp时-multiselect.js),因为需要先加载jQuery

并且由于 bootstrap-multiselect.js 可以依赖于 bootstrap,因此在 bootstrap-multiselect.js 之前加载 bootstrap.js 也没有什么坏处。

所以:

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/Scripts/bootstrap-multiselect.js"></script>
...

修正脚本顺序,jQueryjs应该最先加载因为bootstrap.jsbootstrap-multiselect.js依赖于jquery js.

<link href="~/Content/bootstrap-multiselect.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/Scripts/bootstrap-multiselect.js"></script>

javascript 文件包含的顺序错误,jQuery 文件应首先包含。