0

我有一个问题,我希望有人可以帮助我,这里是:

使用本教程:http ://www.problogdesign.com/wordpress/load-next-wordpress-posts-with-ajax/我能够在不刷新浏览器的情况下动态加载帖子!

到目前为止,一切都很好!

我什至对代码进行了一些定制,并将其与 jQuery Isotope 集成。

到目前为止,一切都很好!

custom.js 文件中包含所有代码以及我为 prettyPhoto 创建的一堆函数和一个喜欢的脚本,例如(prettyPhoto();, postlike();),我在“加载更多”代码中使用,所以添加帖子后,它会“重新加载”。

到目前为止,一切都很好!

顺便说一句,它使用以下代码完成:

jQuery('#content .isotope').append($newEls).isotope('append', $newEls, function() {

漂亮照片();postlike();

等等

创建函数以便以后可以使用它们是没有问题的,现在这是真正的问题:例如,我有一堆用于 jplayer 和 flexslider 的内联 javascript,在添加帖子后我无法重新加载,因为我无法创建因为 jplayer 和 flexslider 的代码在不同的文件中,所以我以后可以使用的函数(就像我对 prettyphoto 和 postlike 所做的那样)。

Jplayer 使用以下代码为例:

<script type="text/javascript">
jQuery(document).ready(function($) {

    if(jQuery().jPlayer) {
        jQuery('#jquery_jplayer_<?php the_ID(); ?>').jPlayer({
            ready: function() {
                jQuery(this).jPlayer('setMedia', {
                    mp3: "<?php echo stripslashes(htmlspecialchars_decode($mp3)); ?>",
                    oga: "<?php echo stripslashes(htmlspecialchars_decode($ogg)); ?>",
                    end: ""
                    });
                },
            swfPath: "<?php echo get_template_directory_uri(); ?>/js/jplayer/",
            cssSelectorAncestor: "#jp_container_<?php the_ID(); ?>",
            supplied: "<?php if($mp3 != '') : ?>mp3, <?php endif; ?><?php if($ogg != '') : ?>oga, <?php endif; ?> all"
        });
    }

});
</script>

请注意,使用唯一标识符调用 jPlayer:#jquery_jplayer_

我的问题是:我如何重新加载这个“内联 javascript”,以便在我动态添加新帖子后它可以工作?

我希望以上内容有意义,如果不是很高兴详细说明!

编辑:

    jQuery( '#load-posts a' ).live( 'click', function(e) {

        // Are there more posts to load?
        if(pageNum <= max) {

            // Show that we're working.
            jQuery(this).text( 'Loading...' );


                jQuery( '#content .isotope-new' ).load(nextLink + ' .item',
                function() {



                    var $newEls = jQuery( '#content .isotope-new .item' );

                    $newEls.imagesLoaded( function(){

                    jQuery( '#content .isotope' ).append($newEls).isotope( 'appended', $newEls, function() {
4

1 回答 1

0

首先,您将要删除旧脚本以确保您不会两次加载它。提供重新初始化类所需的任何脚本:

<script class="my-script">

$('.my-script').remove

然后使用getScript

http://api.jquery.com/jQuery.getScript/

ajaxify.js 脚本在这方面做得很好,所以你可以研究一下它的源代码,看看他们是怎么做的:https ://github.com/browserstate/ajaxify在第 124 行,然后在第 154 行

于 2012-08-18T19:24:25.930 回答