2021-09-29 js单独封装选项卡插件

单独封装选项卡插件

;(function($)
 { // 封装插件 
 $.fn.extend({
  // 封装一个选项卡插件
   "tab": function() {
    this.click(function(e) { 
    // 高亮选项卡标题
     var e = window.event || e var tgt = e.target || e.srcElement $(this).find("li").removeClass("active")
      // 问题:如何获取到被点击的li?
       $(tgt).addClass("active") 
       // 展示对应的内容
        $(".item").removeClass("active")
         var index = $(tgt).index($(this).find("li")) $(".item").eq(index).addClass("active")
        		  }) 
        	  }
          })
        } 
  (jQuery)) 
/*********************************************** 
<div id="tab"> 
	<ul>
		<li class="active">选项卡标题</li>
		 <li>选项卡标题</li>
  </ul> 
	 <div>
		  <div class="item active">选项卡内容</div>
		  <div class="item">选项卡内容</div>
	</div> 
</div>
**********************************************/
封装了一个选项卡,不过已经不像选项卡了-_-!!! 现稍微说明下吧,如果不明白的话,旁边有几个例子可能说明起来更清楚些 obj.bind = ["a1","td","b1","div"]; 绑定id="a1"下的td标签为菜单,绑定id="b1"下的div标签为内容,简单么? td标签的数量和div标签的数量必须相同 (若不需要显示内容,只显示菜单话,可以这个在td标签上加<td skip="true">) 如果id="a1"下的td标签有嵌套表格,这样的话,就不是所有的td都是菜单,这时候需要用下nesting obj.nesting = [false,true,"",""]; 当标签tag有嵌套时,需要用到这个 比如选项卡内容是放在div容器里,而本身这个内容里也有div标签,这时就需要用到 菜单嵌套为false,内容嵌套为true,且会自动判断出内容标签,多数时候这样就可以了 判断方法为,认定getElementsByTagName后第一个标签为内容第一项,其他的就用这个第一项的深度来判断 但有些情况下,这样还是不行 我用后面2个参数做id来指定菜单或者内容的第一项nesting = [false,true,"","q2"]; 这样就肯定不会错了(不明白的话看下例子就简单多了) obj.index = 0; 默认显示第几个选项卡,序号从0开始 obj.style = ["c1","c2","c3"] 菜单加载的样式的className: 菜单未选中的className是c1 菜单选中的className是c2 菜单onmouseover的className是c3 obj.overStyle = false; 选项卡是否有onmouseover, onmouseout变换样式事件[非激活选项卡内容],对应的样式为style[2] obj.overChange = false; 选项卡内容是否用onmouseover, onmouseout直接激活 obj.menu = false; 选项卡是菜单类型 obj.auto = [false, 1000]; 选项卡是否自动播放,播放速度(毫秒) obj.creat(); 开始生成选项卡,需要onclick触发事件的话,可以obj.creat(函数名) 所有的都会触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值