【问题标题】:prettyPhoto with knockOut带敲除的漂亮照片
【发布时间】:2013-02-22 05:50:04
【问题描述】:

我正在使用 knockoutjs 为照片库绑定来自服务器的数据。当我在这个画廊中使用 prettyphoto 时,它不起作用。 代码如下:

<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>

这个问题有解决方案吗?

【问题讨论】:

  • 定义“不起作用”?有什么具体的错误吗?
  • 如果你点击链接,它会在浏览器中打开图片,而不是在模式中显示

标签: knockout.js prettyphoto


【解决方案1】:

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

示例:

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

【讨论】:

  • 最佳实践是将$("area[rel^='prettyPhoto']").prettyPhoto(); 放到一个函数中,然后从json 调用中调用该函数。为此,您不需要 document.ready()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多