MVC升级后,Javascript函数不起作用 - javascript

我已将解决方案从MVC 3升级到MVC 4。

我有2个特定的JavaScript函数,这些函数在升级后不再起作用。

标签

选项卡现在呈现的方式

MVC升级后,Javascript函数不起作用 - 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);
    });
});

 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"));
}

使用php重新加载内容 - javascript

在对网站进行编程时,我以前使用过此代码,它可以完美工作,但是现在当我想使用一些Flash部件时,每次单击链接时,它都会重新加载所有网站。源代码: <!DOCTYPE html> <html> <head> <title>Hot King Staff</title> <meta charset=…

用jQuery填充模式形式 - javascript

我正在将订单表从数据库绘制到datatables(jquery插件)中。我要在每笔最后一笔交易或每笔交易中增加付款。问题是,如何获取单击添加付款按钮以添加付款的行的订单ID。其次,当点击addpayment时,它会弹出一个带有字段或订单号的模态表单。我想用在td中找到的订单ID填充该字段,并使其不可编辑或隐藏,但在提交模态表单时将其发布到服务器。表格和模式表…

尽管刷新,jQuery格式仍未应用于Ajax数据 - javascript

我正在通过GET响应消息从服务器(php文件)的可折叠内部加载列表视图。但是,尽管刷新了jQuery元素,但jQuery格式并未应用于添加的HTML。我的页面在这里:http://i.cs.hku.hk/~hsbashir/Project_Work/events/events.htmlHTML代码(仅相关代码)<script> lastRecor…

JavaScript处理期间数组内部的数组 - javascript

我正在尝试使用Ajax处理表单,并且在处理复选框时遇到了问题。我以为我可以在数组中做一个数组,将选中的框添加到数据对象中,但这似乎不起作用。它不会显示为控制台中对象的一部分或类似内容。我尝试了一些变化,但没有任何效果。这是当前的样子:var formData = { 'fname' : $('input[name=fname]&…

将简单的javascript代码转换为c# - javascript

昨天我在这里问了一个问题。使用javascript和html解决方案很简单前一阵子我打算什么是操纵html来执行javascript中的任务但是我改变了主意,将javascript代码重写为c#这是输入<Abstract> <Heading>Abstract</Heading> <Para TextBreak=�…