Отображение разных Fancybox на основе проверки - слишком много рекурсии

У меня есть список изображений, и при нажатии на изображение мне нужно выполнить вызов URL-адреса ajax и проверить некоторые параметры.

Если проверка прошла успешно, мне нужно будет показать fancybox, иначе я должен отобразить еще один fancybox.

Моя проблема: когда я нажимаю на изображение, и если проверка ложна, другой fanybox отображается должным образом. Но если проверка верна, 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"); 

Другой контент fanybox, который будет отображаться в случае «false»:

 <div style="display:none">
    <div id="myModal"> Invalid Item</div>
 </div>

person Purus    schedule 11.03.2013    source источник
comment
Пожалуйста, дайте мне знать, если потребуется какая-либо другая информация по этому поводу.   -  person Purus    schedule 12.03.2013


Ответы (1)


Приведенные ниже изменения помогли мне выполнить эту работу, как ожидалось ... (все еще есть некоторые проблемы с воспроизведением видео fancybox).

Образец HTML:

<div style="display:none">
  <div id="1">
      <video 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>
</div> 

jQuery:

$("img.vidimg").click(function(){  
   $videoId = $(this).attr("videoId"); 
   $isValid = "true" or "false" ;       // validation using .ajax() call

   if($isValid == 'true'){
      $('#' + $videoId ).fancybox().click();
   }else{
      $("#myModal").fancybox().click()
   }                                             
});

Любые комментарии по этому поводу, связанные с производительностью или плохой практикой кода со ссылкой на этот код?

Я создам здесь новый вопрос по проблеме с видеоплеером. После этого изменения видео не воспроизводится. :(

person Purus    schedule 12.03.2013