现在有点愚蠢的时刻,无法弄清楚为什么这不起作用。自从用jquery做任何事以来已经有一段时间了。
var owl = $('.owl-main');
var button = $('.owl-button');
owl.owlCarousel({
dots:false,
margin:15,
nav:true,
navText: [
'<span class="o-page">Prev</span>',
'<span class="o-page">Next</span>'
],
responsive:{
0:{
items:1
}
},
onChanged: callback
})
function callback(event) {
console.log(event.item.index);
console.log(button);
button.removeClass('active');
//$(".owl-button[data-id='"+event.item.index+"']").addClass('active');
button.find("[data-id='" + event.item.index + "']").addClass('active');
}
我的问题是button.find("[data-id='" + event.item.index + "']").addClass('active');
没有添加&#39;有效的&#39;除了上面注释掉的代码,$(".owl-button[data-id='"+event.item.index+"']").addClass('active');
完全正常。
button
和event.item.index
正在正确报告,为什么这条特定的行对我没有任何作用?
答案 0 :(得分:1)
问题是find()
..你正在以错误的方式使用它..它实际上将使用给定属性搜索按钮中的子元素。但你想要的是找到一个具有给定属性的按钮。
修改:如果您想使用存储的按钮本身数组来实现此功能,那么您可以使用 filter()代替find
< / p>
以下是参考http://api.jquery.com/filter/
button.filter("[data-id='" + event.item.index + "']").addClass('active');