2011-03-10 166 views
1

所以我在我的WordPress站點上使用jsplayer HTML5播放器,以及一些自定義腳本在下一篇文章中加載,並在視頻完成後替換舊內容:多次循環遍歷jQuery .post函數

$(document).ready(function(){ 
     $(".video-js").bind('ended', function(){ 
      var sStr = "<?php echo get_permalink(get_adjacent_post(true,'',true)); ?>"; 
      var adj_numb = "<?php 
          $adj = get_adjacent_post(true,'',true); 
          $numb = $adj->ID; 
          echo $numb 
          ?>"; 
      var cur_numb = "<?php echo $post->ID; ?>"; 
      $.post(sStr, function(data) { 
       var content = $(data).find('#post-' + adj_numb); 
       $("#post-" + cur_numb).html(content); 
       var vid = VideoJS.setup("vid"); 
       vid.play(); 
      }); 
     }); 
    }); 

這對於一個視頻來說效果很好。它加載下一個視頻並播放它,但在第二個視頻播放後,它就停止。我想這意味着我必須對所有變量進行「重置」,然後從腳本開始重新開始,並且由於$(document).ready(function(),因爲它已經全部加載。這一點

是否有通過這個腳本環路的標準方式再次,它運行一次後重新設置所有的變量

感謝

編輯:?!渲染JS:

$(document).ready(function(){ 
     $(".video-js").live('ended', function(){ 
      var sStr = "http://www.theloniousfilms.com/zachmath/volkswagon/"; 
      var adj_numb = "94"; 
      var cur_numb = "96"; 
      $.post(sStr, function(data) { 
       var content = $(data).find('#post-' + adj_numb); 
       $("#post-" + cur_numb).html(content); 
       var vid = VideoJS.setup("vid"); 
       vid.play(); 
      }); 
     }); 
    }); 

HTML:

<div class="post-96 post type-post status-publish format-standard hentry category-zachmath" id="post-96"> 
      <h2 id="director">Zach Math</h2> 

      <h2 id="post_title">Orkin - 
       <span id="post_name"> 

       "Hot Tub" 
       </span> 
       <span id="home"><a href="http://www.theloniousfilms.com/">HOME</a></span> 

       <div class="entry"> 

        <div class="video-js-box"> 
     <!-- Using the Video for Everybody Embed Code http://camendesign.com/code/video_for_everybody --><br /> 
     <video id="vid" class="video-js" width="640" height="360" preload autoplay poster="http://www.theloniousfilms.com/wp-content/uploads/2011/03/poster.jpg"><br /> 
      <source src="http://d29zgp48wvs9kv.cloudfront.net/orkin.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /><br /> 

      <source src="http://d29zgp48wvs9kv.cloudfront.net/orkin.ogv" type='video/ogg; codecs="theora, vorbis"' /><br /> 
      <!-- Flash Fallback. Use any flash video player here. Make sure to keep the vjs-flash-fallback class. --><br /> 
      <object class="vjs-flash-fallback" width="640" height="360" type="application/x-shockwave-flash"<br /> 
      data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"><param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" /><param name="allowfullscreen" value="true" /><param name="flashvars" value='config={"playlist":["http://www.theloniousfilms.com/wp-content/uploads/2011/03/poster.jpg", {"url": "http://d29zgp48wvs9kv.cloudfront.net/orkin.m4v","autoPlay":true,"autoBuffering":true}]}' /><!-- Image Fallback. Typically the same as the poster image. --><br /> 
      </object><br /> 
     </video> 
     </div> 
+0

你也可以提供相應的HTML。 – 2011-03-10 02:22:35

回答

0

我最終只是拉着所有的發佈網址到一個數組,然後通過他們每個人的迭代,移動到下一個項目在一個數組一旦以前的視頻完成播放。

0

看起來像HTML是由

$("#post-" + cur_numb).html(content); 

變化

$(".video-js").bind('ended', function(){ 

改寫爲

$(".video-js").live('ended', function(){ 

應該照顧它。

而且,變化

$("#post-" + cur_numb).html(content); 

$("#post-" + cur_numb).replaceWith(content); 
+0

你是對的,應該工作。但事實並非如此。相反,它甚至沒有推進一個視頻,並且根本沒有通話。也許這與jsvideo有什麼關係 – goddamnyouryan 2011-03-10 02:30:49

+0

向我們展示呈現的代碼。 – 2011-03-10 02:32:08

+0

作爲對問題的編輯添加 – goddamnyouryan 2011-03-10 02:41:08