在Jquery bx滑块插件中如何查找当前滑块是图像还是视频

时间:2015-07-29 08:25:45

标签: javascript jquery iframe bxslider

如何找到当前滑块是bx滑块中的图像或视频。

如果是视频,则视频必须重新加载,如果它是图像,则不重新加载。 但我正在使用,当我转到下一个滑块时,图像和视频都被重新加载。

的javascript:

element.all(by.repeater('col in colContainer.renderedColumns track by col.uid').column('Entity'))
    .getText()
    .then(console.log);

1 个答案:

答案 0 :(得分:2)

使用$(ELE).prop('tagName')获取元素'tagName。 <video>有tagName VIDEO,而<img>有tagName IMG。所以你可以根据它做不同的行动。

或使用.is('video')检查目标元素是否为视频,因为您只想重新加载video

所以你可以写成:

$(document).ready(function(){  
  $(".bxslider").bxSlider({  
    onSlideNext: function() {
      var $target = $("#frameid");
      // Another way
      // if ($target.prop('tagName') === 'VIDEO') {
      if ($target.is('video')) {
        var iframe = $target.attr('src');  
        $target.attr('src', iframe);
      }
    }  
  });  
}); 

P.S:如果你只想让video从头开始玩,我建议使用

// Set video to start.
video.currentTime = 0;
// If the video has autoplay requirement.
video.play();

由于这不会再次加载视频,只是将视频设置为其起点,因此重新加载视频不会产生额外的流量。

段:

// TagName
console.log($('#im').prop('tagName'));
console.log($('#vi').prop('tagName'));
// .Is
console.log($('#im').is('video'));
console.log($('#vi').is('video'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<img id="im"/>
<video id="vi"></video>