我目前正在开发一个小型产品展示页面,它通过ajax加载启用了PrettyPhoto的图库。问题是,prettyPhoto对最初加载页面后添加的图像不起作用。我知道我需要在新内容加载后重新初始化prettyPhoto,但是如何?我试过添加prettyPhoto.init();返回到页面的代码 - 这不起作用。
答案 0 :(得分:5)
我最终找到了两个解决方案。第一个也是最好的就是把这一点放在一边:
$(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto();
});
进入ajax回调,而不是之前调用的prettyPhoto.init();
函数。
我也很幸运使用API而不是再次重新加载prettyPhoto。
希望这有助于某人。
答案 1 :(得分:1)
如果您使用带有Ajax的ASP.NET,那么scriptmanager将允许您使用每次页面回发时调用的名为pageLoad()
的函数(异步或其他)。
您的代码:
function pageLoad()
{
$("a[rel^='prettyPhoto']").prettyPhoto();
}
答案 2 :(得分:1)
$(function() {
$('#navigation a.button').click(function(e) {
$.get( $(this).attr('href'), function(data) {
$('#portfolio').quicksand( $(data).find('li'), { adjustHeight: 'dynamic' }, function(){ $("a[rel^='prettyPhoto']").prettyPhoto(); } );
});
e.preventDefault();
});
});