【问题标题】:Setting `a href` elements dynamically动态设置 `a href` 元素
【发布时间】:2013-06-08 02:32:39
【问题描述】:

对于带有引导程序的选项卡式表单,我有两个按钮基本上是“下一个”和“上一个”按钮。当您从介绍选项卡转到申请人选项卡时,代码就可以正常工作。唯一的问题是元素中有 11 个“标签”。我需要此<a> 中的重要部分来更改每个选项卡。

每次用户浏览表单时,我需要更改的是 href.style.width 和两个 classNames 在“onclick”函数末尾。

<a href="" data-toggle="tab" class="btn btn-primary pull-left hide" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Previous</a>

<a href="#applicant" data-toggle="tab" class="btn btn-primary pull-right" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Next</a>

需要与按钮对应的部分用id 标识,这对所有 11 个部分都不同。

&lt;div class="tab-pane" id="confirmation"&gt;

因此,例如,当用户从介绍选项卡中单击“下一步”按钮时,我需要将上面的内容更改为:(反之亦然,上一个按钮)

<a href="#introduction" data-toggle="tab" class="btn btn-primary pull-left" onclick="document.getElementById('progressBar').style.width='10%'; document.getElementById('introductionTab').className='active'; document.getElementById('applicantTab').className='';">Previous</a>

<a href="#applicant" data-toggle="tab" class="btn btn-primary pull-right" onclick="document.getElementById('progressBar').style.width='20%'; document.getElementById('applicantTab').className='active'; document.getElementById('introductionTab').className='';">Next</a>

等整个tab-panes

我想我可以做一些类似的事情,我真的不知道如何启动它以及如何更改我需要的特定 onclick 元素。

if(this tab-pane is something?) 
{
   document.getelementById('previous').href=""; 
   document.getelementById('previous').style.width="";
   document.getelementById('previous').className="";
}

根据 cmets 的要求,选项卡的布局如下:

<div class="tab-content"> 
  <div class="tab-pane" id="introduction"> 
    //content here 
  </div> 
  <div class="tab-pane" id="applicant">  //and so on just like this for all 11 tabs.
    //content here
  </div>
</div>

【问题讨论】:

  • 我知道页面底部提供的 javascript 无效,我只是展示了我认为脚本的布局方式。它并非旨在发挥作用。
  • 你需要发布你的标签结构以获得一个不错的答案,因为答案可能包括某种只能从你的 html 结构派生的父子组合
  • 因为这将涉及读取您所在的选项卡,然后找出它旁边的哪个选项卡,在左侧和右侧,然后应用
  • 根据要求,我用标签结构更新了我的答案。我希望这就是你的意思:)
  • 是的,当一个处于活动状态时,它具有“活动”类,是吗?

标签: javascript


【解决方案1】:

给你... 这是使用 Twitter 引导程序和 Jquery ...... 希望对你有帮助... 进度条有点小技巧,但它是一个开始,我相信你可以从那里弄清楚...

唯一糟糕的是选项卡是可点击的,这不是您想要的,因为您希望它们在表单中前进而无法单击选项卡....但是具体细节来了

DEMO HERE

$(document).ready(function(){

  //Progress bar calculation
  function setProgress(){
    var length = $tabs.length;
    var index = ($('li').index($(".active")))+1;
    var width = (index/length)*100;
    $('#progressBar').css('width', width+'%');
  }

   var $tabs = $('#tab_bar li');
   setProgress();

   $('#prevtab').on('click', function () {
     $tabs.filter('.active').prev('li').find('a[data-toggle="tab"]').tab('show');
     setProgress();
   });

   $('#nexttab').on('click', function () {
     $tabs.filter('.active').next('li').find('a[data-toggle="tab"]').tab('show');
     setProgress();
   });

   $tabs.click(function () {
    setTimeout(setProgress, 200)
   });

});

然后是你的 HTML,我不知道你对 &lt; ul &gt; 有什么,因为你没有提供那部分......所以我只是修改了一些东西......但这应该与你的结构相似

    <ul class="nav nav-tabs" id="tab_bar">
      <li class="active"><a href="#introduction" data-toggle="tab">Intro</a></li>
      <li><a href="#secondtab" data-toggle="tab">SecondTab</a></li>
      <li><a href="#thirdtab" data-toggle="tab">Third</a></li>
      <li><a href="#fourthtab" data-toggle="tab">Fourth</a></li>
    </ul>    


 <div class="tab-content"> 

    <div class="tab-pane" id="introduction"> 
      asdasdasdas
    </div> 

    <div class="tab-pane" id="secondtab"> 
      asdasdsagreteryterythhgh
    </div> 

    <div class="tab-pane" id="thirdtab"> 
      rthrthrthrthrt
    </div> 

    <div class="tab-pane" id="fourthtab"> 
      yujghjuyjyujedgjhegj
    </div>

</div>


  <a class="btn" id="prevtab" type="button">Prev</button>
  <a class="btn" id="nexttab" type="button">Next</button>

DEMO HERE

【讨论】:

  • 好的,我玩过这个,看起来&lt;ul&gt; 必须在&lt;div class="tab-content"&gt; 里面,对吗?如果是这样,它不适用于设计。我们可以为&lt;ul&gt; 指定一个特定的 div 吗?
  • 如果您愿意,可以访问:green-panda.com/website/panda/employment/…,这是我正在处理的网页。
  • 好的,我只是将脚本更改为使用 &lt;ul&gt; 的类而不是 div 来解决该问题。
  • 是的,我只是想说:)
  • 一切正常,除了那些该死的&lt;li&gt; 是可点击的:( 我不明白将href&lt;a&gt; 中取出会有什么不同。
猜你喜欢
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2018-02-17
相关资源
最近更新 更多