我正在使用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父级中,所以如果视频已经在播放,它将停止。

09-25 20:00