0

我需要从以列表格式单击的父元素中选择一个类。同时防止显示具有相同类名的其他类。

因此,例如:

$('ul').click(function() {
    $('li').next(".info").css({ "display" : "block" });
});

虽然我已经.info设置为display:none;

我的html代码是:

<ul>
    <li><span>Guy</span></li>
    <li class="info">
        <p>This should pop up when I click on the "Guy" span.</p>
    </li>
</ul>

虽然,我似乎无法弄清楚为什么它不会工作/开火。

任何帮助将不胜感激。

4

2 回答 2

2

基本上,您的目标是错误的元素。只需使用:

$('ul li').click(
    function(){
        $(this).next('li.info').show();
    });

JS 小提琴演示

在您的原始代码$(this)ul,被点击的是 (事件从被点击或向上click冒泡),然后查找也具有类名的.lispanululinfo

我的修改是通过将click事件的目标设为li,它一个类为 的同级元素info

顺便说一句,在 jQuery 不起作用的情况下,console.log($(this))检查选择器是否匹配您认为应该匹配的内容会很有帮助。

于 2012-09-07T22:21:34.797 回答
0

您可以将事件绑定到span元素。

$(document).ready(function(){
    $('ul span').click(function() {
        // $('.info').hide()
        $(this).parent().next().show();
    });
})

http://jsfiddle.net/2mvdt/

于 2012-09-07T22:24:21.413 回答