在HTML中追加新元素后,不会触发漂亮的照片ibox

时间:2012-06-20 11:59:27

标签: jquery triggers prettyphoto

在将新元素添加到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>

对此感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

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

类似的东西:

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

然后在你的AJAX电话之后:

initComments();

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

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