2016-03-21 6 views
0

Bir DIV'a tıklandığında görüntüleri görüntülemek için FancyBox eklentisini kullanıyorum. Resimler dinamik olarak oluşturulur ve aşağıdaki kemanda açıklandığı gibi fancybox open() yöntemine JSON verileri olarak geçirilir.Fancybox, görüntülerin yerine JSON metnini gösteriyor

http://jsfiddle.net/wg4MD/

lightbox düzgün açıyor. Ancak resimler yerine düz metni görüntüler. Aşağıda

Ben
$("div.individualitems").each(function(){ 
    $(this).find("#previewHolder").click(function(){ 
     var imageString = '[{"href" : "http://www.testsite.com/test/testtest/img?page=0&size=322"}]'; 
     $.fancybox.open(imageString + ',{"type" : "image"}'); 
    }); 
}); 

sorunun ne emin değil

çalıştı örneği JS kodudur. Tüm yöntem document.ready yöntemindedir. İşte hata ekran görüntüsü:

enter image description here

herhangi bir yorum/öneri büyük ölçüde yardımcı olacaktır. Şimdiden teşekkürler.

+0

Bir cevap aldığımı düşündüm :-) @Rejith – Sriram

cevap

0

konu benim JSON dize ile aslında bina. Aşağıda bana

var imageString = ""; 
    var PreviewData = <a JSON data from a service on my end>; 
    var i=0; 
    var pgCount=0; 
    $(".individualResults").each(function(){ 
     var currentElement = $(this); 
     if($(this).find('#prevURL') != null) { 
      var prevURL = $(this).find('#prevURL').val(); 
     } 
     currentElement.find("#previewHolder").click(function(){ 
      imageString = "["; 
      $.each(PreviewData, function (key, value) { 
       if(prevURL == key) {   
        for(i=0; i<value.readyPages; i++) { 
         pgCount = i + 1; 
         imageString += '{"href" : "http://testsite.com'+value.resourceURI+'img?page='+i+'&size=123", "title" : "Page: '+pgCount+'/'+value.readyPages+'"}'; 
         if(i != (value.readyPages - 1)) { 
          imageString += ","; 
         } 
        } 
        imageString += "]"; 
        $.fancybox.open(eval(imageString), {type : "image"}); 
       } 
      }); 
      return false; 
     }); 
     imageString = ""; 
     i = 0; 
    }); 

Ben bir hizmetten görüntüleri alma ve FancyBox içinde kullandığım için JSON hazırlamak için JSON veri ayrıştırma için çalışır tam fonksiyondur. Umarım bu, benzer bir problemle karşılaşan birine yardımcı olabilir.

0

bu deneyin: Bu arada

$("div.individualitems").each(function(){ 
    $(this).find("#previewHolder").click(function(){ 
     var imageString = 'http://www.testsite.com/test/testtest/img?page=0&size=322'; 
     $.fancybox.open([ 
      { 
      href : imageString, 
      type : "image", 
      title : "your title" 
      } 
     ]); 
    }); 
}); 

, ben " http://www.testsite.com/test/testtest/img?page=0&size=322" Bir resim için geçerli bir yol olmadığını düşünüyorum;)

See a working fiddle with a valid path for the image

+0

Öneri Vincent için teşekkürler. Sağladığım resim yolu, sahte bir URL'dir. Temelde, görüntüyü oluşturacak olan bir denetleyiciden gelen özel bir URL. Bu fonksiyonda birden fazla resim kullanmam gerekiyor. Bu yüzden URL'leri bir JSON dizesi olarak birleştirdim ve open() yöntemine ilettim. – Sriram

+0

Oh tamam, evet oldukça açıktı ama farketmedim :) Kodumu iyi bir yolla denedin mi? –