首先我对jquery一窍不通,javascript也是这两天才看一些基础语法,不为别的就是想看懂js文件,然后再修改我下载过来的jquery树形菜单。网上下载得来的JS文件一般都是只有几行,空格都没有,一眼望去就像一群蚂蚁方阵。好几次我都要放弃了,但我还是坚持了下来,耐心的分析里面的参数和函数。终于功夫不负有心人,让我在大晚上一点多整出来了。
言归正传,jquery树形菜单下载下来默认加载展开的是第一个父节点的子菜单,这让人很不爽,我明明要访问的是第二个父节点的子菜单。能不能在特定的页面加载特定的父节点呢?做这个JS的人这么牛,应该有这种扩展,我深信不疑。开始我试图在代码上找突破口,想改JS源码。结果失败了,对javascript一点基础都没有,这太强人所难了。于是我又回到js的引用页面上来。
// Open the first tab on load accordion_head.first().addClass('active').next().slideDown('normal');感谢大神的注释,总算看懂了。调用不同的函数应该能载入相应的父节点,first()应该是展开第一个父节点,那要展开第二个父节点是不是就要用second()函数呢?试了一试,果然异想天开。于是我又在JS文件中寻找first相关的函数,一个个替换看有什么效果。原谅小白只能这样傻傻的去试了。终于试出了first(),last(),only()。最关键的第N个没试出来,我一直以为是nth()这个函数,还想当然的给这个函数代入各种参数,但树形菜单一动也不动。这次真是严重伤了我的脑神经啊!
最后我还是向万能的百度求助了。查了各种关键字,看了一堆帖子总算找到了想要的信息:
位置选择器
位置选择器主要是根据元素的位置进行选择
div a:first 返回页面第一个在div中的a
div a last 返回页面最后一个在div中的a
div odd 返回页面偶数位置的div
div even 返回页面奇数位置的div
div first-child 返回div 中第一个子选择
div last-child 返回div 中最后一个子选择
only-child 没有兄弟节点的元素
nth-child(n):第n个子节点
eq(n) 第n个匹配元素
gt(n) n之后的匹配元素 不包含
lt(n) n之前的匹配元素 不包含
貌似都是一些jquery的基本语法。看了这些我总算知道要用什么函数了。正解:eq(1)就是第二个父节点,以此类推。
我把所有页面的菜单都换了一下,果然看着舒服了许多。强迫症患者伤不起啊!