-3

我有一个小问题。我似乎无法让脚本识别 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 Accordion 包

有人可以指出正确的方向吗?

4

2 回答 2

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);
    }
}

上面的代码使用getElementsByClassNameif 传递的搜索字符串的第一个字符是一个点,表示一个 css 类选择器;否则,它会按标签名称返回一个元素,就像在原始源中一样。

例如,您当然可以通过检查领先#和做来扩展它getElementById。如果您已经在您的网站上运行 jQuery,您可以简化它并利用 jQuery 的嘶嘶声选择器:

function T$$(e,p) { return $(p).find(e); }
于 2012-05-20T19:20:01.833 回答
2

如果你在谈论这个脚本,你不能在不修改代码的情况下使用你想要的类名。也就是说,按照它目前的工作方式,“init”函数的第二个参数必须是标签名称。

该代码并不漂亮,但它很简单,因此以某种方式增强它以满足您的需求应该不会太难。

于 2012-05-20T19:11:14.997 回答