我正在尝试使用伪选择器将 jQuery Mobile弹出窗口与内部链接结合起来。:target
它在理论上运行良好(click element, hashChanges, change CSS using :target
),但是单击或(更有可能)hashChange 也会关闭弹出窗口。
这是一个在点击时翻转的弹出窗口的快速示例。
/* =========================== FLIP popup ========================= */
.ui-popup .card_register {
display:none;
}
#access-popup:target .card_login {
display:none;
}
#access-popup:target .card_register {
display:block;
}
@media screen an
(min-device-pixel-ratio: 0) {
.ui-popup-container {
perspective: 800;
}
#access-popup:target .ui-popup {
transform: rotateY(180deg);
}
.ui-popup {
transition: transform 0.6s ease-in-out;
transform-style: preserve-3d;
}
.card_login, .card_register {
backface-visibility: hidden;
}
.card_register {
position: relative;
transform: rotateY(180deg);
}
#access-popup:target .card_register,
#access-popup:target .card_login {
display:block;
}
}
.ui-popup-container {
max-height: 400px;
}
.ui-popup {
position: relative;
background: white;
}
.card_login, .card_register {
box-sizing: border-box;
}
.card_login {
height: 400px;
}
.card_register {
bottom: 400px;
float: left;
}
和 HTML:
<a href="#access" data-transition="pop" data-rel="popup">Open</a>
<div data-role="popup" id="access">
<div class="card_login">
<a href="#access-popup" rel="external">Register</a>
</div>
<div class="card_register">
<a href="#&ui-state=dialog" rel="external">Login</a>
</div>
</div>
翻转过渡和回退可以正常工作,:hover
但是当我尝试使用:target
选择器时,每次单击链接时,弹出窗口都会关闭。
问题:
我知道我可以绑定到popupbeforeclose
,preventDefault
但我想知道,当点击弹出窗口中的链接时,是否有一种默认方法可以防止弹出窗口关闭?我已经尝试data-dismissable="false"
并设置rel="external"
了链接。两者都没有工作。
感谢您的投入!