jQuery - onLoad中打开的两个div中的一个

时间:2013-12-20 11:47:23

标签: javascript jquery css

我的jquery应该只在页面加载时打开两个div中的第一个,但现在它会打开它们。

另外,我已经在我的CSS中添加了.active类来为活动的divs链接着色,但它不起作用。

Jquery的

 $(document).ready(function () {
     $(this).find('.infoexpanderContent').slideDown();
 });
 $('.infoexpanderHead').click(function () {
     $(this).siblings().find('.infoexpanderContent').slideUp();
     $(this).find('#infoactive').addClass("active");
     $(this).find('.infoexpanderContent').slideDown();
     $(this).siblings().find('#infoactive').removeClass("active");
 });

CSS

.active {
    color: green;
}

JS和Jquery真的很新,所以请简单起见:)

2 个答案:

答案 0 :(得分:2)

在dom ready处理程序this中引用文档对象,以便您的选择器$(this).find('.infoexpanderContent')返回页面中的所有infoexpanderContent元素并将其向下滑动

在添加单击处理程序后触发第一个元素上的click事件

$('.infoexpanderHead').click(function () {
    $(this).siblings().find('.infoexpanderContent').slideUp();
    $(this).find('#infoactive').addClass("active");
    $(this).find('.infoexpanderContent').slideDown();
    $(this).siblings().find('#infoactive').removeClass("active");
}).first().click();

最好使用手动点击触发器,因为您还必须将活动类添加到第一个infoactive元素

答案 1 :(得分:2)

尝试指定:first选择器:

$('.infoexpanderContent:first').slideDown();

顺便说一下,不需要$(this).find()方法,因为在DOM包装器中,$(this)引用了文档,它总是在jQuery中假设。