[英]Javascript functions don't work after MVC Upgrade
我已將解決方案從MVC 3升級到MVC 4。
我有2個特定的JavaScript函數,這些函數在升級后不再起作用。
選項卡現在呈現的方式
我懷疑這與新框架的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);
});
});
行懸停功能不再起作用,我在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.