画像のリストがあり、画像をクリックしたら、ajax URL呼び出しを実行して、いくつかのパラメーターを検証する必要があります。
検証に問題がない場合は、ファンシーボックスを表示する必要があります。それ以外の場合は、別のファンシーボックスを表示する必要があります。
私の問題: 画像をクリックし、検証がfalseの場合、他のファニーボックスが期待どおりに表示されます。ただし、検証がtrueの場合、Firebugは「再帰が多すぎます」というエラーをスローします。
PS ::検証が真の場合、video.jsプレーヤーが表示されることが期待されます。
HTMLサンプル:
<a id="videolink" href="#1" title="Test">
<img class="vidimg" src="1.png" videoId="1" width="180" height="180" />
</a>
<div style="display:none">
<video id="1" poster="1.png" class="video-js vjs-default-skin">
<source src="1362993728.mp4" type='video/mp4'>
<source src="1362993728.webm" type='video/webm'>
<source src="1362993728.ogv" type='video/ogg'>
</video>
</div>
jQuery:
$("a#videolink").click(function(){
$videoId = $(this).children("img.vidimg").attr("videoId");
$isValid = "true" or "false" ; // validation using .ajax() call
if($isValid == 'true'){
$(this).fancybox().click();
}else{
$("#myModal").fancybox().click()
}
});
「再帰が多すぎる」とは、Firebugの行に示されています。
$videoId = $(this).children("img.vidimg").attr("videoId");
「false」の場合に表示されるその他のfanyboxコンテンツ:
<div style="display:none">
<div id="myModal"> Invalid Item</div>
</div>