javascript - 从链接打开模式而不触发父 javascript
问题描述
我有一个包装布局,其中每个 div 在单击时展开,显示隐藏的内容,包括链接。当您单击链接时,会打开一个模式,但此时这也会触发打包布局并折叠父 div。
我希望发生以下情况:
- 点击 div
- 展开 div 显示链接
- 单击链接显示模式,但不折叠父 div
- 关闭模式,仍然没有折叠父 div
我试过 stopPropagation 但它也禁用了模式。我还尝试将触发 div (.expand) 扩展的类移动到另一个元素,但这破坏了我的包装布局的结构/顺序。
JS在这里:
$(document).ready(function(){
var $grid = $('.grid').packery({
itemSelector: '.grid-item',
});
$grid.on( 'click', '.expand', function( event ) {
$( event.currentTarget ).toggleClass('grid-item--large');
$grid.packery('layout');
$(this).children('.hiddenInfo').toggle();
});
});
& 一个名为 jquery-modal 的插件:https ://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js
这是一段 HTML:
<div class="container">
<div class="grid">
<div class="grid-item">
<div class="grid-item-content expand">
<div class="hiddenInfo">
<a href="#openModalLink" rel="modal:open"><img src="img/thumb.jpg"/></a>
</div>
</div>
</div>
</div>
</div>
<div id="openModalLink" class="modal">
<p>Some content in the modal</p>
</div>
CSS:
.container {
padding: 50px 0 30px 0;
display: block;
width: 98vw;
}
.grid {
width: 100%;
}
.grid:after {
content: '';
display: block;
clear: both;
}
.hiddenInfo {
display: none;
}
.expand {
display: block;
z-index: 999;
width: 150px;
height: 150px;
background: #ffffff;
}
.expand:hover {
cursor: pointer;
}
.grid-item-content {
width: 150px;
height: 150px;
border: 1px solid black;
}
.grid-item {
float: left;
padding: 4px;
}
.grid-item--large {
width: 520px;
height: 375px !important;
border-radius: 0 !important;
background-color: #ffffff;
}
任何帮助将不胜感激,我真的被困住了。
谢谢你。
解决方案
推荐阅读
- vba - Excel VBA 将参数传递给 OLEDBConnection
- r - R - 用两个表格计算百分比
- c++ - uint32_t 指针指向与 uint8_t 指针相同的位置
- azure - 自动缩放在 Azure Kubernetes 服务 (AKS) 中不起作用
- c# - 当我使用 HttpWebRequest C# 重定向到 url 时收到错误请求 (400)
- git - 为什么我收到“错误未能推送一些参考”?
- javascript - 重构异步道具更新
- google-analytics - Google IP 匿名化会丢失什么?
- python - python apache phoenix jdbc 连接
- sql-server - SQL Server 2016 外部数据源 - “外部”附近的语法不正确