首页 > 解决方案 > 为什么 JS 事件“onclick”在第二次点击后起作用,而不是第一次?ASP.MVC

问题描述

有人可以告诉我,为什么标签a在不打开表格的情况下让我第一次点击,而是选择应该去的地址(在第一时刻表格被隐藏)第一次点击

第二次点击后,桌子正在打开,我要去。没有标签<a href="#team-@team.Id">,一键打开。#team-**@team.Id**- 这很正常,我按周期做了 15 个表,并为每个表 id 制作)

我的代码在视图中

<div id=team-logo-wrapper>
<ul>
    @foreach (Team team in Model.Item2)
    {
        <li>
            <div class="team-section-box">
                <p class="team-name">@team.Name</p>
                <a href="#team-@team.Id">
                    <img src="@Url.Content(string.Format("~/Images/NBAlogoImg/{0}", team.Path))" class="logo-images" alt="Логотип @team.Name" title="Логотип @team.Name" onclick="ShowTable(@team.Id)" />
                </a>

            </div>
        </li>
    }
</ul>

在 CSS 我的显示和可见性

.table-hidden {
  margin-top: 50px;
  display: none;
  visibility: hidden;
}

最简单的脚本

var flag = true;
function ShowTable(teamId) {
    var id = "team-" + teamId;
    var getElem = document.getElementById(id);

    if (flag) {
        flag = false;
        getElem.style.display = 'none';
        getElem.style.visibility = 'hidden';
    }

    else {
        flag = true;
        getElem.style.display = 'block';
        getElem.style.visibility = 'visible';
    }
}

标签: javascriptc#htmlasp.net-mvc

解决方案


当您单击图像时,您也会激活链接。

如果您确实需要该链接,请将其更改为:

<a  href="javascript: void(0)">
  <img src="@Url.Content(string.Format("~/Images/NBAlogoImg/{0}", team.Path))" 
       class="logo-images" alt="Логотип @team.Name" 
       title="Логотип @team.Name" 
       onclick="ShowTable(@team.Id)" />
 </a>

推荐阅读