简体   繁体   English

将类添加到下一个元素jquery click函数

[英]add class to next element jquery click function

I have created a vertical slider and I want the classes to move onto the next div on click (next) and previous on click (prev) 我已经创建了一个垂直滑块,我希望这些类在单击(下一个)时移到下一个div上,在单击时将其移到上一个div(上一个)

here is my code and fiddle 这是我的代码和小提琴

$(".bxslider-inner:nth-child(4n+1)").addClass('noBlur');
$(".bxslider-inner:nth-child(4n+2)").addClass('Blur1');
$(".bxslider-inner:nth-child(4n+3)").addClass('Blur2');
$(".bxslider-inner:nth-child(4n)").addClass('Blur3');

$("a.bx-next").click(function(){
   $(".bxslider-inner:nth-child(4n+1)").next().addClass('noBlur');
$(".bxslider-inner:nth-child(4n+2)").next().addClass('Blur1');
$(".bxslider-inner:nth-child(4n+3)").next().addClass('Blur2');
$(".bxslider-inner:nth-child(4n)").next().addClass('Blur3');
});


$("a.bx-prev").click(function(){
   $(".bxslider-inner:nth-child(4n+1)").prev().addClass('noBlur');
$(".bxslider-inner:nth-child(4n+2)").prev().addClass('Blur1');
$(".bxslider-inner:nth-child(4n+3)").prev().addClass('Blur2');
$(".bxslider-inner:nth-child(4n)").prev().addClass('Blur3');
});

Classes seem to be colliding with each other. 班级似乎相互冲突。 I'd suggest cleaning current classes before adding the 'blur' classes, eg : 我建议在添加“模糊”类之前清除当前类,例如:

$(".bxslider-inner:nth-child(4n+1)").next().removeClass().addClass('bxslider-inner').addClass('noBlur');

etc... Problem is it only works for he first click on the button, as 等等...问题是,这仅适用于他首先单击按钮,因为

$(".bxslider-inner:nth-child(4n+1)").next()

Will always be the same element. 永远是相同的元素。 You now need to find a way to fetch the right elements on your click function. 现在,您需要找到一种在click函数中获取正确元素的方法。

Some elements here : In bxslider i want to add a class on current slide 这里的一些元素: 在bxslider中,我想在当前幻灯片上添加一个类

它们似乎与DOM树处于同一级别,因此您可以使用:

$(this).next().click();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM