【问题标题】:Unable to set property 'ajaxEnabled' of undefined or null reference无法设置未定义或空引用的属性“ajaxEnabled”
【发布时间】:2015-03-30 00:38:23
【问题描述】:

我使用asp.net MVC5 为PC 开发了一个网站。现在尝试使用 asp.net MVC5 为同一网站开发支持移动设备的匿名访问网页。我为此创建了一个新项目并从 Nuget 控制台下载了 jQuery.Mobile.MVC。这在项目中使用 JS 代码添加了移动布局

$(document).ready(function () {
    $.mobile.ajaxEnabled = false; 
});

我刚刚使用此移动布局添加了一个新视图,并添加了一些标签控件以查看其工作原理。它抛出以下错误

JavaScript 运行时错误:无法设置未定义或空引用的属性“ajaxEnabled”

我必须添加任何其他库吗?这是我的第一个移动页面。如果您能提供一些好的教程,那就太好了

我已包含 jquery.mobile.js 参考

谢谢

【问题讨论】:

  • jquery.mobile.js肯定加载在页面中,还是你刚刚下载了nuget包?您引用 $.mobile 的脚本是否发生在 jquery.mobile.js 加载到页面中之后?
  • jquery.mobile.js 参考在加载脚本之前已经包含在布局页面中 @Scripts.Render("~/bundles/jquery", "~/bundles/jquerymobile")

标签: javascript jquery asp.net-mvc jquery-mobile asp.net-mvc-5


【解决方案1】:

您是否包含 jquery 和 jquery.mobile js 脚本?将其添加到准备好的文档中并查看它是否有效。

$(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
});

【讨论】:

  • 我已包含参考。我也应该在我的问题中提到这一点。现已编辑
【解决方案2】:

这似乎与 jQuery 的版本冲突。

要使用 nuget 包使其正常工作,请将您的代码更改为以下内容:

<script src="@Url.Content("~/scripts/jquery-1.8.2.js")"></script>
<script>
    var jq = jQuery.noConflict();
</script>
<script src="@Url.Content("~/scripts/jquery.mobile-1.1.2.js")"></script>

<script type="text/javascript">
    jq(function () {
        jq.mobile.ajaxEnabled = false;
    });
</script>

但是我建议不要使用 nuget 包并手动安装最新版本。

【讨论】:

    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2014-08-01
    • 2020-04-28
    相关资源
    最近更新 更多