我正在使用FitVids进行响应视频。我像这样实例化它:
$("#thing-with-videos").fitVids();
我希望将
fitVids()
应用于屏幕尺寸低于480px的一个特定元素,并且已经实现了。但是出于显示目的,如果用户调整浏览器大小以检查宽度较小的显示,我还需要应用fitVids()
,我已经做了类似的事情jQuery(window).resize( function(){
$("#other-thing-with-videos.small_width").fitVids();
});
...效果很好,但是,由于
fitVids()
似乎已应用于引用的DOM元素,而不是像我最初想到的引用类,这意味着删除该类(对于更大的屏幕尺寸)不会删除像我想的那样,fitVids()
的影响。那么,有什么方法可以删除我在元素上调用的
fitVids()
吗?编辑-我想知道unbind方法是否可以用于此目的?
最佳答案
下面将删除父div的类和任何样式:
$('#container').fitVids();
$("#btn").click(function ()
{
$(".fluid-width-video-wrapper").removeClass("fluid-width-video-wrapper").removeAttr("style");
});
这几乎消除了FitVid效果。
jsFiddle:http://jsfiddle.net/hescano/m6Jwx/1/
编辑:我认为此解决方案更好一些:
$.fn.unFitVids = function () {
var id = $(this).attr("id");
var $children = $("#" + id + " .fluid-width-video-wrapper").children().clone();
$("#" + id + " .fluid-width-video-wrapper").remove(); //removes the element
$("#" + id).append($children); //adds it to the parent
};
您只需像这样从您的元素中调用它:
$("#myDiv").unFitVids();
jsFiddle:http://jsfiddle.net/hescano/m6Jwx/2/
我看到的唯一缺点是,因为我从DOM中删除了这些元素,将它们克隆,然后将它们放在div父级中,所以如果视频已经在播放,它将停止。