我有一个问题,我希望有人可以帮助我,这里是:
使用本教程: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() {
答案 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行