为什么JS事件“ onclick”会在第二次点击但不是第一次点击后产生出来? ASP.MVC

时间:2019-01-08 19:18:09

标签: javascript c# html asp.net-mvc

有人可以告诉我,为什么标记a导致我在不打开表格的情况下进行了第一次点击,却选择了应该去的地址(在表格被隐藏的第一刻)first click

,第二次单击后,表格正在打开,我要去它。没有标签<a href="#team-@team.Id">的广告,只需点击1次即可打开。 #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';
    }
}

1 个答案:

答案 0 :(得分:2)

当您单击图像时,您还激活了链接。

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

<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>