动态设置`a href`元素

时间:2013-06-12 04:33:23

标签: javascript

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

每次用户进入表单时,我需要更改的是href.style.width以及“onclick”函数末尾的两个classNames

<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个部分都不同。

<div class="tab-pane" id="confirmation">

因此,例如当用户点击“简介”标签中的“下一步”按钮时,我需要将上面的内容更改为:(对于上一个按钮,反之亦然)

<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="";
}

根据评论中的要求,标签的布局如下:

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

1 个答案:

答案 0 :(得分:3)

你去...... 这是使用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,我不知道你对< ul >所拥有的是什么,因为你没有提供那部分...所以我只是攻击了一些东西......但这应该与你的结构相似

    <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