微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript对象将内容加载到DOM中

我试图弄清楚我的代码是否会永远加载我的页面,或者它是否通过我的javascript对象不断迭代.我有一个对象有46个条目,其中46个图像,也充当模态触发器,应该在页面加载后自动加载.页面正在加载一半图像,而不加载其余图像.图像的文件大小是最小的,最多97kb.在对象中链接的视频确实高达9mb,但我假设在点击事件被触发之前它们没有被加载.我是对的?我应该使用ajax加载视频内容吗?或者我的javascript代码是罪魁祸首?我正在努力学习,所以任何想法/建议都会受到欢迎并非常感谢!

live site | fiddle with same code

JavaScript的

var dataCollection = {
  'videoData': [
    {
      'id'      : 0,
      'title'   : 'Badminton',
      'company' : 'Pepto Bismol',
      'gifLink' : 'http://reneinla.com/kris/gifs/BadmintonPeptoBismolCommercial.gif',
      'srcMp4'  : 'http://reneinla.com/kris/videos/BadmintonPeptoBismolCommercial.mp4',
      'srcWebm' : 'http://reneinla.com/kris/videos/BadmintonPeptoBismolCommercial.webm',
      'srcOgv'  : 'http://reneinla.com/kris/videos/BadmintonPeptoBismolCommercial.ogv',
      'poster'  : 'http://reneinla.com/kris/videos/BadmintonPeptoBismolCommercial.jpg'
      },
      { ...
     ]
    };

var videos = $('#video');
var modalContent = $('#video-modal');

var appendVideo = function(videoObj) {
  var poster = videoObj.poster;
  var srcMp4 = videoObj.srcMp4;
  var srcWebm = videoObj.srcWebm;
  var srcOgv = videoObj.srcOgv;
  var video = $('<div class="video col-sm-12 col-md-3"><img src="' + poster + '" data-title="' + videoObj.title + '" data-toggle="modal" data-target="#myModal"/></div>');

  var videoPlayer = $('<video preload="auto" controls><source src="' + srcMp4 + '" type="video/mp4;"><source src="' + srcWebm + '" type="video/webm;"><source src="' + srcOgv + '" type="video/ogv;"></video>');
  videos.append(video);

video.find('img').click(function(e) {
  modalContent.append(videoPlayer);
  // debug
  // alert(videoObj.srcMp4);
  // console.log(videoObj.srcMp4);
});

$('#myModal, .close').on('click', function(){
  modalContent.find('video').remove();
});

$('.myHTMLvideo').click(function() {
    $(this).get(0).paused ? $(this).get(0).play() : $(this).get(0).pause();
  });
};

for (var i = 0; i < dataCollection.videoData.length; i++) {
  var obj = dataCollection.videoData[i];
    appendVideo(obj);
}

HTML

<div class="container row">
  <div id="video"></div>
</div>

<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">
      <button type="button" class="close" data-dismiss="modal">&times;</button>
      <div class="modal-body" id="video-modal"></div>
    </div>
  </div>
</div>

解决方法:

试试这个

var videoPlayer = $('<video preload="none" controls><source src="' + srcMp4 + '" type="video/mp4;"><source src="' + srcWebm + '" type="video/webm;"><source src="' + srcOgv + '" type="video/ogv;"></video>');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐