jQuery:child为其父元素触发事件

时间:2009-01-16 01:10:54

标签: javascript jquery toggle

我有几个嵌套的div元素,如下所示:

<div class="main">
blah blah blah <div class="clickme">clickme</div>
</div>

<div class="main">
bleh bleh bleh <div class="clickme">clickme</div>
</div>

<div class="main">
blih blih blih <div class="clickme">clickme</div>
</div>

我想通过单击其子div标签中带有“clickme”类的相应“clickme”文本来触发一个toggle事件,该事件将显示/隐藏标有“main”类的div。对不起,我无法弄清楚如何做到这一点。感谢。

1 个答案:

答案 0 :(得分:10)

$(".clickme").click(function() {
    $(this).parent("div.main").toggle();
});

关于第二个问题,您需要添加:

$(this).unbind('click');

在任一切换功能结束时,它将按您的意图运行。祝你好运。

编辑:以回应您的最新问题,应该这样做:

$(".abrefecha").click( function() {
    var that = this; // save this in that :)
    jQuery(this).parent().toggle(
        function () {
            var itemId = jQuery(this).attr("id");
            var itemIndex = $(".showhide").index(this);
            var currentItemHeight = b[itemIndex] + 30 + 'px'
            jQuery(this).css("overflow","auto");
            jQuery(this).animate( { height: currentItemHeight } , 500 );
            $(that).html('close'); // change html inside pink to 'close'
            $(this).unbind('click');
        },
        function () {
            jQuery(this).css("overflow","hidden")
            jQuery(this).animate( { height:"60px" } , 500 );
            $(that).html('abrefecha'); // change html back to 'abrefecha'
            $(this).unbind('click');
        }
    );
});