关于JQuery里的index()方法 - 边走边睡

[2010-05]化学学院学生科网站:

做了很多种方式的选择项卡切换。没有一个确定的方法。

程序的魅力就在于一个[结果]有无数种[方式]去实现。

学生科的网站首页有19个Repeater控件。6个div块的tabs切换。

做tabs切换总不能一个个去写方式吧:(代码如下....)

$(function()

{

$("#tabs a:eq(0),#tabs2 a:eq(0),#dbt_l_t_tabs a:eq(0),#dbt_r_t_tabs a:eq(0)").addClass("m_on");

$("#tabs a:gt(0),#tabs2 a:gt(0),#dbt_l_t_tabs a:gt(0),#dbt_r_t_tabs a:gt(0)").addClass("m_out");

$("#tabs a,#tabs2 a,#dbt_l_t_tabs a,#dbt_r_t_tabs a").each(function(){

$(this).mouseover(function(){

  if($(this).hasClass("m_out"))

  {

  var ab=$(this).closest("li").closest("div").attr("id");

  var ulid="ul_"+ab;

  var arra=$("#"+ab+" a");

  var e=arra.index($(this));
  $("#"+ab+" a").removeClass("m_on").addClass("m_out");

  $(this).removeClass("m_out").addClass("m_on");

  $("#"+ulid+" ul").hide();

  $("#"+ulid+" ul:eq("+e+")").show();

}

  })

})

})

23行赋值使用了JQuery的index方法。查找一个对象的某一元素在这个对象里的索引值。

官方一个说明:$('li').index($('#bar'));这里的index参数用单引号。在测试过程中总是失败。。不知道为什么。后来直接先定义了$(this)所在对象:var arra=$("#"+ab+" a");。 

就可以成功返回索引了。

以下是其中一个Tabs

 

        	<div class="sh_topnew">
            	<div class="w1bg"></div>
            	<div id="tabs">
               		 <li><div class="w1bg"></div><a href="List.aspx?Uid=185">新闻动态</a><div class="w1bg"></div></li>                     
                     <li><div class="w1bg"></div><a href="List.aspx?Uid=160">团学专题工作</a><div class="w1bg"></div></li>
                </div>
                <div class="w1bg"></div></div>
            <div class="w636">
            	<div class="w300"><img src="images/222.jpg" /></div>
                <div class="w336" id="ul_tabs"><ul></ul><ul class="nodis">
                <li><a href="Show.aspx?Uid=194&ID=6393" title="团干培训通知">[团干培训] 团干培训通知</a>2010-05-17</li>
            
                <li><a href="Show.aspx?Uid=193&ID=6392" title="我校团委开展学风建设主体活动">[团日活动] 我校团委开展学风建设主体活动</a>2010-05-17</li>
            </ul></div>
            </div>
posted @ 2010-06-01 08:55  边走边睡  阅读(956)  评论(0编辑  收藏  举报