【问题标题】:Jquery slideup and slideup ignore parent divjquery slideup和slideup忽略父div
【发布时间】:2012-07-11 14:26:09
【问题描述】:

我希望用户能够单击 div,以向下滑动另一个子 div。当用户单击该子 div 内的按钮时,子 div 将向上滑动。

使用以下 JQuery,div 可以很好地向下滑动。但是,当我单击按钮时,它会向上滑动,然后又迅速向下滑动。

<script type="text/javascript">
    $('.comment').hide() // hides all the divs which have been generated. These are the ones that need to slideUp and slideDown. 


    $(".listview-item-inside-comment").live('click', function () {
        $(this).find(".comment").slideDown();
    });


    $(".form-button").live('click', function (e) {
        if($(e.target).is(":hidden")) return;
        $(this).parents(".comment").slideUp();
    });

</script>

如果有帮助,这里是 HTML:

<div class="listview-item-comment">
    <div class="listview-item-inside-comment">
        <a>Here is a comment...</a>
        <div class="listview-item-info">
            username @ timestamp
            <a style="float: right;">click to reply</a>
        </div>

        <div class="comment">
            <form>
                <textarea name="commentField">Write your comment here...</textarea>
                <p align="center">
                    <input type="submit" class="form-button" value="Submit Comment" />
                    <input type="button" class="form-button" value="Cancel" />
                </p>
            </form>
        </div>
    </div>
</div>

非常感谢!

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您的子点击正在冒泡 dom 3,导致再次触发父点击。

    将您的代码更改为:

     $(".form-button").live('click', function (e) {
    
            e.stopPropagation(); // stop event bubling
    
            if($(e.target).is(":hidden")) return;
            $(this).parents(".comment").slideUp();
        });
    

    【讨论】:

    • 我是,但它告诉我必须等待一段时间。
    猜你喜欢
    • 2015-05-11
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多