在wordpress进行ajax调用后重新加载内联javascript

时间:2012-08-18 15:46:35

标签: jquery ajax wordpress call reload

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

使用本教程:http://www.problogdesign.com/wordpress/load-next-wordpress-posts-with-ajax/我可以动态加载帖子而无需刷新浏览器!

到目前为止一切顺利!

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

到目前为止一切顺利!

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

到目前为止一切顺利!

顺便说一下,它完成了以下代码:

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

prettyPhoto(); 类柱();

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

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() {

1 个答案:

答案 0 :(得分:0)

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

<script class="my-script">

$('.my-script').remove

然后使用getScript

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

ajaxify.js脚本可以很好地完成这项工作,因此您可以稍微研究一下它的源代码,看看它们是如何做到的:第124行的https://github.com/browserstate/ajaxify,然后是第154行