在点击导航项时,我应该在页面重定向之前显示一个图形.

在添加下面的jQuery代码之前,这@Html.IsSelected个将路由到指定的页面.现在,当我添加代码以显示图形时,图形会出现,但页面不会重定向到指定的页面.

我做错了什么?

<ul>
 <li class="@Html.IsSelected(area: "Home", controller: "Home",  action: "Index")">
  <a asp-area="Home" asp-controller="Home" asp-action="Index" navigation="true">@Localizer["Home"]>
  <a>Home</a>
 </li>
 <li class="@Html.IsSelected(area: "About", controller: "About",  action: "Index")">
  <a asp-area="About" asp-controller="About" asp-action="Index" navigation="true">@Localizer["About"]>
  <a>About</a>
 </li>
</ul>

我添加了jQuery以在点击li时显示图形

$(document).ready(function () {
  $('ul.nav li a').click(function (e) {
    e.preventDefault();
    $.graphic("show");
  });
});

推荐答案

页面不会重定向,因为您调用了preventDefault()来停止页面重定向.我猜想您这样做是为了防止DOM被立即卸载,这样就不会显示图形.

要解决此问题,您可以阻止标准页面重定向,然后在短暂延迟后手动执行.这将允许显示图形时间,但请注意,正在加载的新页面的操作将再次隐藏图像.

jQuery($ => {
  $('ul.nav li a').on('click', e => {
    e.preventDefault();
    $.graphic("show");
    setTimeout(() => window.location.assign(e.target.href), 500);
  });
});

Jquery相关问答推荐

使用 howler.js 中的变量播放多种声音

如何限制select2中的字符?

DataTables - this.api 用于回调函数中的多个表

jquery如何判断ajax调用的响应类型

jQuery:使用变量作为 Select 器

为什么对同一个 ASP.NET MVC 操作的多个同时 AJAX 调用会导致浏览器阻塞?

标识符 (id) 是否有通配符 Select 器?

JSON字符串到JS对象

如何使用 jQuery go 除 HTML 标签?

如何设置缓存:jQuery.get 调用中的 false

根据属性'data-sort'对jQuery中的div进行排序?

$(document).on('click', '#id', function() {}) 与 $('#id').on('click', function(){})

验证外部脚本是否已加载

Jquery .show() 不显示隐藏可见性的 div

jQuery 插件:添加回调功能

更改占位符文本

从 Select 元素中获取选定的选项

JavaScript 等效于 jQuery 的扩展方法

在jQuery中获取CSS规则的百分比值

JQuery 判断 DOM 中的重复 id