0

在我将新元素附加到 HTML 页面后,我试图让 prettyPhoto 或其他一些 jquery 插件工作:

具体来说,我有这个:

$(document).ready(function() { 
              $(window).scroll(function() {
                if($(window).scroll) {  
                  $('div#loadMoreComments').show();

                    $.ajax({
                                type    : "POST",
                                url     : "getvariables.php",
                                dataType: "json",
                                data    : { webid: $(".posts:last").attr('id') }
                            }).done(function( msg ) {

                                   jQuery.each(msg , function(index, value){
                                        $("#posts").append(value);
                                    });


                                    //    $("#posts").append(msg);

                                    $('div#loadmore').hide();

                                });
                }
              });
            });

然后我有这样的东西必须触发弹出窗口

<p><a href="#inline-1" rel="ibox">Trigger popup.</a></p>
    <div id="inline-1" style="display: none;">
             Content to show up after the link is triggered

    </div>

将不胜感激任何帮助。谢谢。

4

1 回答 1

1

您需要在追加后更新 prettyPhoto 的钩子。尝试将 prettyPhoto 的初始化放入一个函数中。然后从文档就绪函数内部调用该函数,并在追加更多项目时再次调用。

就像是:

function initComments(){ $("a[rel^='comments']").prettyPhoto(); }

然后在您的 AJAX 调用之后:

initComments();

或者,使用 jquery 的 ajaxStop() 函数在 ajax 调用完成后更新挂钩。

jQuery.ajaxStop(function(){ initComments(); });

于 2012-08-22T21:07:26.677 回答