Javascript函数不';MVC升级后无法工作
我已将解决方案从MVC 3升级到MVC 4 我有两个特定的JavaScript函数在升级后不再工作Javascript函数不';MVC升级后无法工作,javascript,c#,jquery,asp.net-mvc,asp.net-mvc-4,Javascript,C#,Jquery,Asp.net Mvc,Asp.net Mvc 4,我已将解决方案从MVC 3升级到MVC 4 我有两个特定的JavaScript函数在升级后不再工作 标签 这就是选项卡现在呈现的方式 我怀疑这与新框架的JavaScript版本有关?我不确定 代码: $(函数(){ $(“#制表符”).tabs(); $('.taberize')。每个(函数(){ var e=$(本); 变量面板=e.parents(“.ui选项卡面板”); 如果(panels.length==0){return;} var tabId=$(面板[0]).attr('id'
$(函数(){
$(“#制表符”).tabs();
$('.taberize')。每个(函数(){
var e=$(本);
变量面板=e.parents(“.ui选项卡面板”);
如果(panels.length==0){return;}
var tabId=$(面板[0]).attr('id');
e、 attr('href',e.attr('href')+'#'+tabId);
});
$(“.container”)。每个(函数(e){
var height=$(document).height()-230;
$(此)。高度(高度);
});
});
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>
var-prevRow=null;
$('#gridData table tbody tr')。不是(':first')。悬停(函数()
{
$('#myMenu').hide();
if(prevRow!=此)
{
if(prevRow!=null)
{
$(prevRow.css(“背景”和“);
$('.actionButtons',$(prevRow)).hide();
}
$(this.css(“背景”,“EDEFFF”);
$('.actionButtons',$(this)).show();
prevRow=这个;
}
},
函数()
{
如果(!$(“#我的菜单”)是(“:可见”))
{
if(prevRow!=null)
{
$(prevRow.css(“背景”和“);
$('.actionButtons',$(prevRow)).hide();
prevRow=null;
}
}
});
$(“.openmenu”).contextMenu({menu:'myMenu',leftButton:true},
功能(动作、el、pos){
contextMenuWork(操作,el.parents('tr')[0].id,pos);
});
函数contextMenuWork(操作,id){
开关(动作){
案例“插入”:
{
如果($.browser.msie&&$.browser.version.substr(0,1)将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>
}
最后,检查BundleConfig类是否有类似以下文件的代码:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
}
问题是,不知何故jquery.validate文件被修改了,这导致了我的问题。在浏览器中打开F12开发者工具,看看是否有任何错误?还要检查您是否在布局中引用了jquery JS文件?您在布局中是否使用@RenderSection?@pooriataghizadeh,我确实使用了“@RenderSection”:“@RenderSection(”Head“,false)”@ramiramilu,1错误:未捕获的TypeError:a(…).on不是文件“jquery.validate.min.js”中的函数您的jquery代码是否在类似-@Section Head{…}
?的部分中?您是否有-@Scripts.Render(~/bundles/jquery”)@Scripts.Render(~/bundles/jqueryui))
?谢谢@pooria,我已经做了更改。只有FireFox仍然存在这个问题……我们会看看问题出在哪里
@Scripts.Render("~/bundles/jquery")
@RenderSection("Head", false)
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
}