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();
});
</p>
http://jsfiddle.net/EveryoneMustWin/hjJtc/
ご協力いただきありがとうございます!