说起来自己听惭愧的,学了这么久,才写出一个方法。。。真是老脸都丢光了。以后就多用这种方法,养成好习惯吧。
需求:在两个同样的div模板上实现切换效果;
问题:因为是div都是使用了通过的类,所以以前直接使用类选择的方法已经行不通,因为点击一个tab的时候,两个模板的都会懂;
另外,我特别傻x,弄了一下午,alert()测试tab的数量总是为0,最后下班了才想到自己在使用方法是没把“#”放进去。真是。。。;
总结:如果要使用封装出自己的方法,就要尽量的时候,html标签名来查找元素,而能使用html标签名来查找元素的方法,一般都是children(),siblings(),next(),find(),prev(),parent(),closet()等方法,另外要使用这些方法一定要确定这是jquery对象,还有hasClass()返回的是布尔值(我真傻x);
还有些小问题,我自己现在才弄懂的,谷歌开发者工具,提示的unexpect token .(unexpect token ,unexpect token })重点是后面的点号".",问题出现在这里,我四级也太水了。
还有测试对象的方法可以用
for( var pro in obj ){ document.write(pro+':'+obj[pro]+'<br>') } //obj 为对象,pro为该对象的方法属性
<div class="module-title" id="tab1"> <div class="module-title-text" style="color:#197faf">公告通知 </div> <div class="module-title-text">行业资讯</div> <span class="line"></span> </div> <div> <div class="module-content" style="display:block;"> <ul> <li> <a href="">1我是标题我是标题我是标题我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> </ul> </div> <div class="module-content" > <ul> <li> <a href="">2我是标题我是标题我是标题我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> <li> <a href="">我是标题我是标题我是标题</a> </li> </ul> </div> </div>
jquery
<script type="text/javascript"> function _tab(id){ var $id = $(id); var $tab =$(id).children('div'); var $nextdiv = $(id).next('div').find('div'); var $line = $(id).children('span'); $tab.click(function(){ var _index = $(this).index(); $(this).css('color','#197faf').siblings().css('color','#555'); $nextdiv.eq(_index).show().siblings().hide().css('color','#555'); if(_index == 0){ $line.animate({'left':'0'},300); }else{ $line.animate({'left':'50%'},300); } }) } _tab('#tab1');//睁大狗眼看清楚有个井号 _tab('#tab2'); </script>