杀死jQuery插件
kill jQuery plugin
我在一个隐藏的盒子里有一个转盘。div显示为onclick,它初始化了工作的插件。
唯一的问题是,当我关闭盒子然后再次打开它时,它会再次初始化插件,这会给我两个旋转木马。当我关闭div时,有没有办法杀死转盘?
// show hide dropdowns
$("#category").click(function(e){
e.preventDefault();
$('.style-dropdown, .brand-dropdown').hide();
$(".category-dropdown").fadeToggle();
$(this).toggleClass("active");
$('a#style, a#brand').removeClass("active");
$("#category-slider").flexisel({
visibleItems: 6,
animationSpeed: 1000,
autoPlay: true,
autoPlaySpeed: 6000,
pauseOnHover: true,
enableResponsiveBreakpoints: true,
responsiveBreakpoints: {
portrait: {
changePoint:480,
visibleItems: 1
},
landscape: {
changePoint:640,
visibleItems: 2
},
tablet: {
changePoint:768,
visibleItems: 3
}
}
});
});
flexisel插件似乎没有像jCarousel插件那样的destroy()方法。因此,让旋转木马自杀可能是不可能的。
但是,与其在每次打开时初始化一个新的旋转木马,为什么不在关闭时隐藏旋转木马,并在打开时再次显示相同的旋转木马呢?也许再次调用方法initializeItems()(这是由init()方法调用的)。
通过您更新的代码,我可以看到您在每次单击事件上都调用flexisel()方法。你应该确保只打一次电话。试试这样的东西:
if (!carousel) {
var carousel = $("#category-slider").flexisel({
...
});
}
关注点的分离。
将初始化方法移出.click()
函数。它应该在窗口加载时初始化一次(根据文档),仅此而已。显示和隐藏它所在的容器是所有必要的。如果滑块不在框中,请在单击事件期间也将该元素作为目标。
$("#category").click(function(e){
e.preventDefault();
$('.style-dropdown, .brand-dropdown').hide();
$(".category-dropdown").fadeToggle();
$(this).toggleClass("active");
$('a#style, a#brand').removeClass("active");
});
$(window).load(function() {
$("#category-slider").flexisel({
visibleItems: 6,
animationSpeed: 1000,
autoPlay: true,
autoPlaySpeed: 6000,
pauseOnHover: true,
enableResponsiveBreakpoints: true,
responsiveBreakpoints: {
portrait: {
changePoint:480,
visibleItems: 1
},
landscape: {
changePoint:640,
visibleItems: 2
},
tablet: {
changePoint:768,
visibleItems: 3
}
}
});
)};
EDIT:为了澄清这一点,您可以调用$("#category-slider").hide();
或切换一些将在单击方法中隐藏并显示它的类。
相关文章:
- 如何在Angular2中使用jQuery插件
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 水平视差滚动从头开始-没有插件(jQuery)
- 什么是最好的表单元素样式库/插件(jQuery)
- 如何在Bootstrap Modal上使用Vue.js渲染插件jQuery(作为工具提示和Switchery)
- 屏蔽输入插件 jquery
- 多选插件 jquery 不适用于 javascript
- 使用验证器插件 Jquery 验证动态输入表单元素
- 如何从网格数据表插件 jQuery 中清除数据
- 插件Jquery Validation的错误消息显示不正确
- Livestamp插件Jquery-如何显示时间
- Youtube跟踪JQuery插件JQuery .tubeplayer.js
- 创建句柄特性的拖放插件- jquery
- 如何使用表排序插件- jquery搜索表中的项
- Ajax文件上传进度没有任何插件Jquery
- 航路点插件Jquery
- 在数据表插件jQuery中设置分页长度
- 如何在OpenUI5/SAPUI5中使用jQuery插件(jQuery验证引擎)
- 时钟插件 jQuery
- jQuery插件'jQuery .shuffle.js'执行排序