我正在尝试使用jQuery工具叠加层,当有一组静态按钮启动叠加层时,它可以很好地工作。
然而,当重新创建链接到叠加层的按钮时,叠加层似乎变得孤立,我看不清楚原因。我无法关闭它,我甚至无法通过使用each()遍历DOM来找到它的引用。
我已经看到了一些涉及触发点击的解决方案,但是对于一件事,这似乎是一个不优雅的解决方案,另一方面,当我尝试时,它会导致叠加在关闭之前闪烁。我想了解为什么这不起作用,以及一个好的解决方案,任何人都可以帮忙吗?
HTML
<div id="container">
</div>
<button class='modalLaunch' rel='#modal'>
Uncontained launch button
</button>
<div id="modal">
Modal
<button id="rebuildContainer">Rebuild container</button>
</div>
的Javascript
$(document).ready(function() {
$("#modal").hide();
var rebuildContainer = function() {
$("#container").html("<button class='modalLaunch' rel='#modal'>Contained launch button 1</button><br><button class='modalLaunch' rel='#modal'>Contained launch button 2</button>");
var triggers = $(".modalLaunch").overlay({
mask: {
color: '#bbbbee',
loadSpeed: 200,
opacity: 0.9
},
closeOnClick: true,
load: false
});
}
$("#rebuildContainer").click(function() {
console.log("rebuilding buttons inside the container div");
$(".modalLaunch").each(function() {
var o = $(this).overlay();
if (o) {
console.log("there is an overlay associated with this button");
if (o.isOpened()) {
// I would expect this to be true once each time the handler is called
console.log("the overlay associated with this button is open");
}
}
});
$(".modalLaunch").overlay().close();
rebuildContainer();
});
rebuildContainer();
});
http://jsfiddle.net/EveryoneMustWin/hjJtc/
感谢您的帮助!
答案 0 :(得分:0)
自从提出这个问题以来,我已经阅读了这个问题jQuery Tools Alternatives?并决定放弃jQuery Tools可能是最好的。他们网站上的论坛甚至不允许你开始新的帖子!