jquery - 如何在 MVC5 View 中使用 jquery Accordion

标签 jquery asp.net-mvc-5

我尝试在我的 MVC5 View 中使用 #accordion (jquery),即使我尝试了多种方法来添加对 Jquery 文件的引用,但我收到此错误:

JavaScript runtime error: Object doesn't support property or method 'accordion'

这是我的观点:

@model CSAProject.Models.CustomerModel
    <script src="@Url.Content("~/Scripts/jquery-1.10.2.js")"    type="text/javascript"></script>

    <script src="@Url.Content("~/Content/jquery-ui.css")"  type="text/javascript"></script>

   <script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>


 <style>

   body {
   font-family: "Trebuchet MS", "Helvetica", "Arial",  "Verdana", "sans-serif";
font-size: 62.5%;
  }
   </style>


    <script type="text/javascript">
      $(function () {
      $("#accordion").accordion();
  });
  </script>
  <div id="accordion">
  <h3 style="color:#009AE1">Customer Profile</h3>
 <div>
 test 
 </div>
 <h3 style="color:#009AE1">Payment</h3>
 <div>
 test2
</div>
<h3 style="color:#009AE1">Password</h3>
  <div>
  test3
  </div>
   </div>

我在这一行中遇到错误:

  $("#accordion").accordion();

最佳答案

很明显,您对加载依赖项的顺序有疑问。为什么要将这些包含在 View 中?您应该将它们放入捆绑配置中。将这些链接放在正文中会使浏览器在页面完成加载之前加载 js 库,并且会出现很多问题 - 捆绑配置可以防止这种情况发生。

打开文件~/App_Start/BundleConfig.cs并将链接放在那里。这样,您可以确保所有依赖项都以正确的顺序呈现:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                             "~/Scripts/jquery-{version}.js",
                             "~/Scripts/jquery-ui-1.11.4.min.js",
                             "~/Scripts/MyApp/MyCustomJS.js"));

然后使“MyCustomJS.js”包含:

$(function () {
      $("#accordion").accordion();
});

不要陷入将杂散的 JavaScript 放入 View 的陷阱,因为当您使用 BundleConfig 时,它实际上会读取所有内容并在将其发送到浏览器之前将其缩小,然后将其输出到页面底部。将其放入 View 中意味着它将在渲染缩小的 javascript 之前读取

关于jquery - 如何在 MVC5 View 中使用 jquery Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244828/

相关文章:

javascript - PHP - 从完全加载的外部页面加载 HTML

c# - 使用 MVC 5 属性路由的性能不佳和网站速度慢

c# - MVC 5 路由问题 - 多个路由错误地针对同一 View

c# - 无法将 lambda 表达式转换为类型 “string” 因为它不是委托(delegate)类型?

javascript - 我可以修改使用 window.open 加载的外部 URL 的 HTML DOM 吗?

jquery - 您可以更改 jquery mega 菜单中菜单周围的左右填充,并且子菜单仍然排列吗?

c# - Visual Studio MVC 5 显示错误但编译和运行正常

asp.net-mvc - 在 OWIN 登录时检索用户 Facebook 电子邮件

javascript - 我如何在 Ember.js 中调用 jQuery 的 hide() 方法?

javascript - 如何使用 jQuery 将 input[type=submit] 替换为 input[type=text]?