2013-02-22 34 views
0

我正在使用knockoutjs将数据从服务器绑定到照片库。当我在这个图库中使用prettyphoto时,它不起作用。 下面是代码:prettyPhoto with knockOut

<div class="gallery"> 
    <div class="gcontent" data-bind="with: gList"> 
     <ul id="plist" class="thumbs" data-bind="foreach: rows"> 
      <li class="dd">      
       <div class="thumb"> 
        <img width="140" height="100" data-bind="attr:{src: '/Uploads/media/Images/'+Id+Pic, alt:Title }"> 
        <div class="thumbcon"> 
         <div class="con"> 
          <a data-bind="attr:{href: '/Uploads/media/Images/'+Id+Pic, title:Title}" rel='prettyPhoto[gallery]'> 
           show</a> 
         </div> 
        </div> 
       </div> 
      </li>     
     </ul> 
    </div> 
</div> 

是否有针对此问题的解决方案?

+0

定义 “不工作”?任何地方的具体错误? – radai 2013-02-22 06:07:38

+0

如果你点击链接,它将在浏览器中打开图像,而不是以模态显示 – omab 2013-02-22 06:18:59

回答

0

万一其他人面临同样的问题。问题是ajax没有完成,并且在调用prettyPhoto之前数据还没有准备好。要修复它,您必须等到ajax调用完成。

例如:

$.getJSON(_serviceURL(), function (data) { 
if (data != null) { 
...... 
$(document).ready(function() {$("area[rel^='prettyPhoto']").prettyPhoto();}      
else { 
...... 
} 
}); 
+0

最好的做法是将'$(“area [rel^='prettyPhoto']”)。prettyPhoto();'放到函数中并从jSON调用中调用该函数。你不需要这个document.ready()。 – 2013-12-03 20:07:16