#javascript #jquery #css #sliding
#javascript #jquery #css #скольжение
Вопрос:
У меня есть вопрос, похожий на другие здесь, но они не помогли, потому что они ссылались на ссылки на списки, в то время как они не являются списками.
У меня есть сайт с горизонтальным перемещением. Когда вы нажимаете на ссылки вверху, они выделяются в соответствии с тем, на какую страницу они переходят. Однако, если вы используете левую и правую навигационные стрелки, ссылки не выделяются должным образом. Он просто остается выделенным на последней ссылке, на которую был нажат. Мне было интересно, может ли кто-нибудь показать мне, что я делаю неправильно. Я хочу, чтобы правильная ссылка была выделена, даже когда используются навигационные стрелки.
Вот скрипт на jsfiddle:http://jsfiddle.net/LD9YS/13 /
И вот одна из моих неудачных попыток… (пожалуйста, не пытайтесь выяснить, что я здесь делал… Я сам об этом понятия не имею)
$(".arrow-right").click(function(){
prevA.removeClass("active");
prevA = $(A[index]).addClass("active");
});
До боли очевидно, что я понятия не имею, как это сделать, но, по крайней мере, я предпринял несколько попыток. Я хотел показать больше своих попыток, но они были настолько запутанными, что я даже не могу вспомнить, что я сделал с ними.
Может кто-нибудь, пожалуйста, помочь? Если кто-то не может помочь с этим, я готов просто отказаться от этого.
Ответ №1:
Вы бы сделали это следующим образом
$('.arrow-left').on('click', function (e) {
e.preventDefault();
$('.tabs .active').prev().trigger('mousedown');
});
$('.arrow-right').on('click', function (e) {
e.preventDefault();
$('.tabs .active').next().trigger('mousedown');
});
Комментарии:
1. Работает отлично, но есть одна небольшая проблема. Когда вы переходите к последней ссылке (страница 5), и вы продолжаете нажимать на нее, выделение продолжает повторяться, но страница остается на странице 5. Чтобы уточнить, я установил его так, чтобы страницы не возвращались к первой странице. Я хочу, чтобы это остановилось на 5.
2. Ты молодец! Настоящий профессионал, если я когда-либо видел такого. Большое спасибо! Работает как шарм.
3. @user2284703 — Я на самом деле изменил это, это кажется намного проще!
4. Вы также можете легко объединить два обработчика следующим образом -> jsfiddle.net/LD9YS/18
Ответ №2:
Вот что вам следует сделать:
$('.arrow-left').on('click', function(e){
e.preventDefault();
mySwiper.swipePrev();
$(".tabs .active").removeClass('active');
$($('.tabs a')[mySwiper.activeIndex]).addClass('active');
})
$('.arrow-right').on('click', function(e){
e.preventDefault();
mySwiper.swipeNext();
$(".tabs .active").removeClass('active');
$($('.tabs a')[mySwiper.activeIndex]).addClass('active');
})
Ответ №3:
Это сработало бы для стрелки вправо…
$('.arrow-left').on('click', function(e){
e.preventDefault()
var current = $('.tabs').find('a.active').index();
if(current!= $('.tabs').find('a:first').index()){
$('.tabs a').removeClass('active');
$('.tabs a').eq(current-1).addClass('active');
}
mySwiper.swipePrev()
})
То же самое для стрелки влево
$('.arrow-right').on('click', function(e){
e.preventDefault()
var current = $('.tabs').find('a.active').index();
if(current!= $('.tabs').find('a:last').index()){
$('.tabs a').removeClass('active');
$('.tabs a').eq(current 1).addClass('active');
}
mySwiper.swipeNext()
})
Комментарии:
1. Этот код просто испортил все мои страницы при его использовании. У меня есть каждый раздел (страница), отображающий iframe, но этот код просто превратил все это в маленькие iframe рядом друг с другом, все подряд на одной странице. Хотя спасибо. Ценю время, потраченное на помощь.
2. @user2284703 Возможно, я забыл включить
)
в конце блока. Теперь я отредактировал это, но я рад, что вы нашли свой ответ.