在 Chrome 中几秒钟后选项卡会变回第一个选项卡

Posted

技术标签:

【中文标题】在 Chrome 中几秒钟后选项卡会变回第一个选项卡【英文标题】:tabs change back to first tab after a few seconds in Chrome 【发布时间】:2018-05-10 22:42:38 【问题描述】:

我的页面上有 5 个标签。它设置为在页面加载时打开到第一个选项卡。当我在几秒钟后单击其他选项卡时,它再次变回第一个选项卡。它应该停留在被点击的选项卡上,直到点击其他内容,而不是返回到第一个选项卡。

它适用于Firefox,但不适用于ChromeSafari

网址是https://vcs.org/donate-now/

javascript 代码是这样的 -

 function openCity(evt, cityName) 
     var i, tabcontent, tablinks;
     tabcontent = document.getElementsByClassName("tabcontent");
     for (i = 0; i < tabcontent.length; i++) 
         tabcontent[i].style.display = "none";
     
     tablinks = document.getElementsByClassName("tablinks");
     for (i = 0; i < tablinks.length; i++) 
         tablinks[i].className = tablinks[i].className.replace(" active", "");
     
     document.getElementById(cityName).style.display = "block";
     evt.currentTarget.className += " active";
 

 // Get the element with id="defaultOpen" and click on it


 window.onload=function()
     document.getElementById("defaultOpen").click();
 ;

请帮忙!!!我很感激!!

【问题讨论】:

什么叫openCity() 我不太了解javascript,所以这是我从w3c 网站获得的代码,我只是没有更改他们使用的一些名称。 html是这个- 哎呀 - 。这用于第一个标签 【参考方案1】:

所以你打电话给...

window.onload = function () 
    document.getElementById("defaultOpen").click();
;

然后触发另一个 onclick 事件...

<li>
    <button class="tablinks" onclick="openCity(event, 'Donate')" id="defaultOpen"><a href=""></a><h1>Donate</h1> MAKE A DIFFERENCE NOW</button>
</li>

我建议在默认选项卡上设置活动,然后在您选择不同的选项卡时删除。这是一个快速而肮脏的例子。

var tabLinks = document.getElementsByClassName('tablinks');

function openCity(evt) 
  var tabcontent = document.getElementsByClassName("tabcontent");
  for (var i = 0; i < tabcontent.length; i++) 
    if (tabcontent[i].id === evt.target.name) 
      tabcontent[i].style.display = "block";
     else 
      tabcontent[i].style.display = "none";
    
  

  for (let a of tabLinks) 
    a.className = 'tablinks'
  

  evt.currentTarget.className += ' active';



for (let t of tabLinks) 
  t.addEventListener('click', function(event) 
    openCity(event);
  );
button.active 
  background-color: lightblue !important;
<ul>
  <li>
    <button class="tablinks active" name="defaultOpen"><a href=""></a><h1>Donate</h1> MAKE A DIFFERENCE NOW</button>
  </li>
  <li>
    <button class="tablinks" name="other"><a href=""></a>Other</button>
  </li>
  <ul>

    <div id="defaultOpen" class="tabcontent" style="display:block;">
      defaultOpen content
    </div>

    <div id="other" class="tabcontent" style="display:none;">
      other content
    </div>

【讨论】:

在完成所有这些之后,我肯定会推荐使用像 bootstrap 或 jQuery 这样的库来让你更轻松。特别是如果您刚开始使用 javascript。

以上是关于在 Chrome 中几秒钟后选项卡会变回第一个选项卡的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 远程调试:空检查选项卡

CAKeyframeAnimation : 停止时内容变回第一张图片

Chrome 表单重置不更改显示选择元素

当通过手势识别器滑动切换到仅点击选项卡时,在 tabbarcontroller 中切换选项卡会给出不同的结果

更改基于选项卡的应用程序上的选项卡会向下推 UI 元素

VUE项目实战48参数下可选项的增删改