【问题标题】:jQuery: child firing an event for its parent elementjQuery:子元素为其父元素触发事件
【发布时间】:2009-01-16 01:10:54
【问题描述】:

我有几个这样的嵌套 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>

我想触发一个切换事件,该事件将显示/隐藏标有"main" 类的div,方法是单击其子div 标记内的相应clickme 文本和"clickme" 类。抱歉,我不知道该怎么做。谢谢。

【问题讨论】:

    标签: javascript jquery toggle


    【解决方案1】:
    $(".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');
            }
        );
    });
    

    【讨论】:

    • 伙计,我不能告诉你我欠你多少钱。谢谢,谢谢,谢谢,你拯救了我的一天(再次!)。阿布拉索斯。
    猜你喜欢
    • 2013-12-28
    • 1970-01-01
    • 2018-05-19
    • 2018-10-21
    • 1970-01-01
    • 2012-12-07
    • 2017-12-05
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多