点击()无效

时间:2013-06-10 16:00:24

标签: javascript jquery html css

我的页面上有两种类型的div。第一种是“主要项目”,第二种是“子项目”。我用css隐藏了子项目,当我们点击主项目时我想要显示它们。我试过了,但它不起作用。

HTML

<div class="item">
    Item 1
    <div class="sub-item">  
        Sub Item 1
    </div>
</div>
<div class="item">
    Item 2
    <div class="sub-item">  
        Sub Item 2
    </div>
</div>
<div class="item">
    Item 3
    <div class="sub-item">  
        Sub Item 3
    </div>
</div>
<div class="item">
    Item 4
    <div class="sub-item">  
        Sub Item 4
    </div>
</div>
<div class="item">
    Item 5
    <div class="sub-item">  
         Sub Item 5
    </div>
</div>

CSS

.menu .item {
    color: White;
    width: 250px;
    vertical-align: middle;
    line-height: 35px;
    color:black;
}

.menu .sub-item {
    margin-left: 15px;
    display:none;
}

JS / jQuery的

$(".item").click(function() {
    $(this).child().show();
});

此外,这是小提琴:jsFiddle

3 个答案:

答案 0 :(得分:4)

没有child功能。您可能想要使用children,但更具选择性更清晰。使用此:

$(".item").click(function() {
    $('.sub-item', this).show();
});

<强> Demonstration

答案 1 :(得分:4)

你的jsfiddle缺少一些东西。首先,您没有选择jQuery库。其次,您需要在document.Ready事件中运行jQuery,否则jQuery尚未定义。

以下是更新的fiddle

    $(document).ready(function() {
        $(".item").click(function () {
            $(this).children('.sub-item').show();
        });
    });

您可以使用jQuery中的.children()方法选择子元素,但正如其他提到的.child()不是方法。

答案 2 :(得分:0)

你可以试试这个

jQuery(document).delegate('.item', 'click', function(e) {
   $('.sub-item', this).show();
});