2015-02-05 68 views
1

不知道我是否问了这个问题,但我想实现的是:我在响应式网站上使用了masonry插件,并且我希望它只能用于桌面。所以我用这个代码来运行插件:如何关闭jquery插件

var $container = $('#container'); 
$container.masonry({ 
     columnWidth: 200, 
     itemSelector: '.item' 
}); 

对于屏幕比900px较小(在调整大小和加载)我不希望这个插件工作。如果可能的话,我有这个代码,但不知道我应该放入什么来阻止插件运行。 (我通过检测CSS,而不是窗口的宽度)

$(window).on("load resize", function() { 
    if ($("#logo").css("left") == "none"){ 
     //stop plugin from running 
    } 
}); 
+0

CSS您的初始化函数初始化脚本无法关闭脚本,所以你我必须检查页面的宽度并删除窗口上的脚本元素调整大小 – 2015-02-05 17:04:32

+0

但如何删除脚本? – yennefer 2015-02-05 17:05:26

+0

http://stackoverflow.com/questions/18815857/how-to-dynamically-remove-script-from-a-page – 2015-02-05 17:09:14

回答

1
+0

我接受这个作为答案,因为它的工作,但我有这个错误在萤火虫:不能调用方法在初始化之前进行石工;试图调用'destroy' – yennefer 2015-02-05 18:08:09

+0

在初始化插件之前,您正在调用此代码。之后需要运行它。 – mattfetz 2015-02-05 18:21:19

+0

我只在大屏幕上运行此代码,并将其移除,并且我在'$(window).on(“load resize”,function(){'中创建了条件,所以当我调整窗口大小时在初始化之前运行,有时候之后,这取决于开始的浏览器屏幕的大小点 - 如果这是有道理的有没有办法解决这个问题? – yennefer 2015-02-05 18:44:30

0

您可以通过检查窗口的宽度:

var ww = $(window).width(); 

if (ww <= 900px) { 
    $('#container').masonry('destroy'); 
} 

我建议你也在你调整大小功能使用debounce功能所以它一直不听。

问候提摩太

1

您可以使用

if($(window).width()<900){ 
    $('#masonry').masonry('destroy'); 
} 

,您可以使用您 用于启动功能