簡體   English   中英

MVC升級后,Javascript函數不起作用

[英]Javascript functions don't work after MVC Upgrade

我已將解決方案從MVC 3升級到MVC 4。

我有2個特定的JavaScript函數,這些函數在升級后不再起作用。

  1. 標簽

選項卡現在呈現的方式

標簽渲染

我懷疑這與新框架的JavaScript版本有關嗎? 我不確定。

碼:

<script type="text/javascript">
$(function () {
    $("#tabs").tabs();

    $('.taberize').each(function () {
        var e = $(this);
        var panels = e.parents('.ui-tabs-panel');
        if (panels.length == 0) { return; }
        var tabId = $(panels[0]).attr('id');
        e.attr('href', e.attr('href') + '#' + tabId);
    });

    $(".container").each(function (e) {
        var height = $(document).height() - 230;
        $(this).height(height);
    });
});


2.行懸停功能

行懸停功能不再起作用,我在WebGrid的左側有一個“操作菜單”,在行懸停時,它顯示了諸如“編輯”和“詳細信息”菜單之類的功能...這是在JavaScript中完成的。

 <script type="text/javascript"> var prevRow = null; $('#gridData table tbody tr').not(':first').hover(function() { $('#myMenu').hide(); if (prevRow != this) { if (prevRow != null) { $(prevRow).css("background",""); $('.actionButtons', $(prevRow)).hide(); } $(this).css("background","#EDEFFF"); $('.actionButtons', $(this)).show(); prevRow = this; } }, function() { if (!$('#myMenu').is(":visible")) { if (prevRow != null) { $(prevRow).css("background",""); $('.actionButtons', $(prevRow)).hide(); prevRow = null; } } }); $(".openmenu").contextMenu({ menu: 'myMenu', leftButton: true }, function(action, el, pos) { contextMenuWork(action, el.parents('tr')[0].id , pos); }); function contextMenuWork(action, id) { switch (action) { case "insert": { if($.browser.msie&&$.browser.version.substr(0,1)<8){var url='@Url.Action("Create", "Account")';document.location=url}else{CreateNewAccount()} break; } case "createtask": { var url = '@Url.Action("CreateFromAccount", "UserTask")' + '/' + id; document.location = url; break; } case "linkassessment": { var url = '@Url.Action("CreateFromAccount", "Questionnaire")' + '/' + id; document.location = url; break; } case "details": { var url = '@Url.Action("Details", "Account")' + '/' + id; document.location = url; break; } case "edit": { var url = '@Url.Action("Edit", "Account")' + '/' + id; document.location = url; break; } case "createperson": { if($.browser.msie&&$.browser.version.substr(0,1)<8){var url='@Url.Action("Create", "Person")';document.location=url}else{CreateNewPerson(id)} break; } case "createopportunity": { var url = '@Url.Action("Create", "Opportunity")' + '/' + id; document.location = url; break; } } } }); </script> <div id="gridData"> <ul id="myMenu" class="contextMenu" style="display: none"> <li class="insert"><a href="#insert" id="create">Create New</a></li> <li class="detail"><a href="#details">Details</a></li> <li class="edit"><a href="#edit">Edit</a></li> </ul> </div> <table> <tr> <th class="field-actions-account" style="width: 75px"> <a href="#">Actions</a> </th> <tr id="@Html.Encode(item.AccountID)"> <td> <div class="actionButtons" style="display:none"> <a href="@Url.Action("Edit", new { id = item.AccountID }) " style="text-decoration:none" title="Edit"><img src="@Html.Raw(@Url.Content("~/Content/img/document-pencil-icon.png"))" alt="Edit" title="Edit" style="border:none"/> </a> <a href="@Url.Action("Details", new { id = item.AccountID }) " style="text-decoration:none" title="Details"><img src="@Html.Raw(@Url.Content("~/Content/img/testDetailsIcon.gif"))" alt="Details" title="Details" style="border:none" /> </a> <img src="@Html.Raw(@Url.Content("~/Content/img/options.gif"))" alt="More Options" class="openmenu" title="More Options"/> </div> 

將您的JavaScript代碼放在這樣的部分中:

  @section Head
  {
    <script type="text/javascript">
    $(function () {
    $("#tabs").tabs();

    $('.taberize').each(function () {
      var e = $(this);
      var panels = e.parents('.ui-tabs-panel');
      if (panels.length == 0) { return; }
      var tabId = $(panels[0]).attr('id');
      e.attr('href', e.attr('href') + '#' + tabId);
    });

    $(".container").each(function (e) {
       var height = $(document).height() - 230;
       $(this).height(height);
      });
    });
   </script>
  }

然后確保您的布局中的“ @RenderSection(” Head“,false)在您的@ Scripts.Render(”〜/ bundles / jquery“)下:

@Scripts.Render("~/bundles/jquery")
@RenderSection("Head", false)

最后檢查您的BundleConfig類是否具有類似於此文件的代碼:

 public static void RegisterBundles(BundleCollection bundles)
{
  bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
             "~/Scripts/jquery-{version}.js"));
}

問題是,以某種方式修改了jquery.validate文件,這導致了我的問題。

暫無
暫無

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

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