Jquery - 无法隐藏父div

标签 jquery html css

我有一个表格,单元格中有一个 div,当我单击该行时,它显示一个 div,它是第一个单元格 div 内的绝对定位 div(订单详细信息)。当我点击关闭 div 时,我想再次隐藏父(订单详细信息)div。它不会隐藏它。

我还制作了一个 fiddle

<table>
    <tr class="order-row">
        <td>
            <div class="dummy-detail-position">
                <div class="order-details">
                    <div class="dismiss">X</div>
                </div>
            </div>
        </td>
    </tr>
     <tr class="order-row">
        <td>
            <div class="dummy-detail-position">
                <div class="order-details">
                    <div class="dismiss">X</div>
                </div>
            </div>
        </td>
    </tr>
     <tr class="order-row">
        <td>
            <div class="dummy-detail-position">
                <div class="order-details">
                    <div class="dismiss">X</div>
                </div>
            </div>
        </td>
    </tr>
</table>

这是我的JS

<script>
$(document).on('click','.order-row',function() { 
        var tr = $(this).closest('tr');
        $(this).find('.order-details').show();
})

$(document).on('click','.dismiss',function() { 
    alert($(this).parent().parent().html());
    $(this).parent().parent().find('.order-details').hide();

});
</script>

最佳答案

是因为事件传播

$(document).on('click','.order-row',function() { 
    var tr = $(this).closest('tr');
    $(this).find('.order-details').show();
})

$(document).on('click','.dismiss',function(e) { 
    e.stopPropagation()
    $(this).closest('.order-details').hide();    
});

演示:Fiddle

order-nowdismiss 的祖先, order-now处理程序将在 dismiss 之后被触发处理程序,它将再次显示 order-details元素

演示:Fiddle

关于Jquery - 无法隐藏父div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641248/

相关文章:

javascript - jquery用jsp文件内容替换div内容

javascript - 浏览器页面中选定文本的坐标

html - 添加带有搜索栏的 <li> 元素并防止从父 div 元素溢出

html - 如何将剩余宽度应用于其他 2 个 div 中间的 div

html - Welcome#Index 中的 Ruby On Rails 语法错误

javascript - jquery - 对任何事件执行效果

java - 如何处理 JQUERY 中具有不同名称但相同 CSS 类的隐藏动态元素

javascript - 双击在 iPhone Safari 浏览器中不起作用

jquery - 在 Bootstrap 中设置轮播位置

javascript - 如何仅将 jquery 函数应用于大屏幕