javascript - Owl Carousel - 只需一个点旋转木马幻灯片即可滑动多个旋转木马
问题描述
我有两个我想使用的轮播,它们都有相同数量的项目,所以没问题,但我只想有一个导航dots
并且能够触发多个dots
具有相同属性的导航。
$('.div_main .owl-dots').each(function(index) {
$(this).attr('data-index','dot-'+index);
});
$('.owl-dots[data-index="dot-0"] button').each(function(index) {
$(this).attr('data-index','dot-'+index);
});
$('.owl-dots[data-index="dot-1"] button').each(function(index) {
$(this).attr('data-index','dot-'+index);
});
$('.div_main .owl-dot').click(function(e) {
e.preventDefault();
var idx = $(this).data('index');
$('.div_main').each(function() {
$(this).find('button.owl-dot').eq(0).attr('data-index',idx).click();
});
});
第一个功能是获取所有 owl-dots 并添加index
属性以知道哪个是哪个。第二个和第三个是使它们相同,就像如果这button
也data-index="dot-0"
有另一个owl.dots
将是button[data-index="dot-0"]
这样,这次我要么想触发其中一个,而只是找到button
相同的另一个data-index
,但这会导致错误。
Uncaught RangeError: Maximum call stack size exceeded
我认为我的第四个功能有问题。或者是否有任何实例dots
会触发其他dots
实例owl-carousel
?
解决方案
这个点击处理程序:
$('.div_main .owl-dot').click(function(e) {
e.preventDefault();
if(!$(this).is(".active"){
var idx = $(this).data('index');
$("[data-index='"+idx+"']").not(this).click();
}
});
注意.not(this)
!
你有这个错误,基本上是因为你在哪里说:“点击我,点击我。”......这导致了最大的堆栈错误。
因此,检查点是否已经处于活动状态也将停止无限循环。
推荐阅读
- symfony - 如何在 Symfony 4 中概括 ApiKeyAuthenticator?
- c - 如何在不同的头文件中拥有两个具有相同类型和名称的结构而不会发生冲突?
- python - 如果 Python 解释器逐行执行代码,函数调用之前程序中的函数定义是如何存在的?
- matlab - 在 Matlab 中绘制两个数组值
- angular - 在从 CSS 转换为 SCSS 的项目上运行 Karma 时出错
- laravel - 如何在 Laravel 5.8 上与 groupBy eloquent 一起使用 where
- javascript - 搜索无法在 Jquery 中按“数据名称”显示结果
- html - 放置文本时在 div 框中放置的 div 框将所有框推出
- python - 在opencv中使用均值合成帧
- python - Python正则表达式(regex),将JSON转换为文本文件进行解析