我有一个小问题。我似乎无法让脚本识别h3标签。我不能把它保持为h3
,我必须为它添加一个类。
标记:
<h3 class="jjheader">
<?php echo $listitem->title ?>
</h3>
CSS:
#accordion h3.jjheader {
padding: 8px 8px 8px 8px;
font-weight: bold;
font-size: 12px;
color: #666666;
margin-top: 5px;
cursor: pointer;
border: 1px solid #444444;
border-radius: 8px;
background: #151515;
}
如果我没有在h3中添加一个类并在下面的脚本中用.jjheader
替换h3
,它可以正常工作,但是对于类,它不会。
脚本:
<script type="text/javascript">
var parentAccordion=new TINY.accordion.slider('parentAccordion');
parentAccordion.init('accordion','.jjheader',0,1,'accordion-selected');
</script>
手风琴基于http://www.scriptiny.com/2009/03/accordion/
的TinyAccordion JavaScript手风琴包有人可以指出正确的方向吗?
答案 0 :(得分:3)
该脚本从定义T$$
开始,init
仅在function T$$(e,p){
if(e[0] == '.') {
var matches = p.getElementsByClassName(e.substring(1));
return matches.length == 0 ? null : matches[0];
} else {
return p.getElementsByTagName(e);
}
}
中使用。该函数在容器中按标记名称查找元素。可以很容易地修改它以使用类选择器,例如:
getElementsByClassName
如果传递的搜索字符串的第一个字符是点,则上面的代码使用#
,表示css类选择器;否则,它按标签名称返回一个元素,就像在原始源中一样。
您当然可以通过检查前导getElementById
并执行function T$$(e,p) { return $(p).find(e); }
来扩展此功能。如果你已经在你的网站上运行jQuery,你可以简化它并利用jQuery的sizzle选择器:
{{1}}
答案 1 :(得分:2)
如果您正在讨论this脚本,则无法在不修改代码的情况下使用您想要的类名。也就是说,它当前的工作方式,“init”函数的第二个参数必须是标签名称。
这段代码并不漂亮但很简单,因此以某种方式增强它以满足您的需求应该不会太难。