【问题标题】:Using jQuery with Razor in ASP MVC在 ASP MVC 中使用带有 Razor 的 jQuery
【发布时间】:2012-03-10 12:02:39
【问题描述】:

在我看来我有这个代码

<a href="#" class="bt_on" title="ON">ON</a>
<script type="text/javascript">switchOnOff()</script>

我在一个名为“on-off-button.js”的文件中有这个 jQuery 代码

$(function switchOnOff () {
  $("a.bt_off").click(function () {
    $(this).removeClass().addClass("bt_on");
  });
  $("a.bt_on").click(function () {
      $(this).removeClass().addClass("bt_off");
  });
});

为了连接所有这些,我把它放在我的布局文件中

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

现在,当我加载我的页面时,我发现 Microsoft JScript 出现异常,指出该属性的值为 Null 或未定义,而不是 Function 对象

我错过了什么?

谢谢。

【问题讨论】:

  • 您确定函数 switchOnOff() 在您的视图中对代码可见吗?您创建它并传递给 jquery。我认为您的视图看不到它。另外,我不明白为什么您已经将它添加到 jquery 的 document.ready 中时要自己调用它。

标签: jquery asp.net-mvc-3 razor


【解决方案1】:

由于某种原因,您的视图无法看到 .js 文件。

试试这个:

<script src="../../Scripts/on-off_button.js" type="text/javascript"></script> 

【讨论】:

  • 不,这不是问题,除了我认为我不应该在我的代码中放置这样的静态 URL。
【解决方案2】:

使用这个也许可以解决:

function switchOnOff() {
$("a .bt_off").click(function() {
    $(this).removeClass().addClass("bt_on");
});
$("a .bt_on").click(function() {
    $(this).removeClass().addClass("bt_off");
});

}​ 或

function switchOnOff() {
$('.bt_off').click(function() {
    $(this).removeClass().addClass("bt_on");
});
$('bt_on').click(function() {
    $(this).removeClass().addClass("bt_off");
});

}​

【讨论】:

    猜你喜欢
    • 2011-12-18
    • 2016-07-11
    • 1970-01-01
    • 2011-07-30
    • 2013-07-17
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多