特定のページに、リンクをクリックするとビデオが表示されるFancyboxアイテムのインスタンスが複数あります。
それとは別に、URLからデータを取得し、戻り値に基づいて別のファンシーボックスを表示する関数が5秒ごとに実行されています。
問題は、setInterval関数が常に実行されるため、実際のビデオが再生されても、$。fancybox.close()を使用すると、そのビデオが閉じられることです。
私が欲しかったのは、myModalによって識別されたファニーボックスだけを閉じることです。
これは私が使用するjQueryです。
$(document).ready(function() {
function myplugin() {
$.getJSON("get-status.php", function (data) {
$.each(data, function (key, status) {
if(status > 0) {
$("#myModal").fancybox().click();
}else{
$.fancybox.close(); // Works. But closes other open Fancybox if any
//$("#myModal").fancybox().close(); // Does not work
}
});
});
};
$(function() {
setInterval(function() { myplugin() }, 5000);
});
});