Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal, tudo bem?
Preciso que, quando o usuário clicar em determinado botão, ele dispare o mesmo evento click em outro botão.
Exemplo: Tenho várias galerias de fotos dentro de uma container controlado por abas, e quando ele chega na última foto da primeira galeria, o botão da direita deve levar para a próxima aba, primeiro elemento.
//se o elemento for o ultimo da galeria
if($('.item:last-child').hasClass('active')){
//ele dispara o click na proxima aba da galeria
}
Podem me ajudar? =)
Funciona com o evento 'onclick' ? Utilizo as Tabs do Bootstrap e dentro do elemento <a> possuo um evento onclick.
Ou apenas a função 'click' neste elemento?
Preciso configurar uma função anteriormente para tal ação?
$('#proximo_elemento').trigger('onclick');
o evento é "click" o "listener" que é "onclick".
Então vc faz .trigger('click') e não .trigger('onclick'), okay ?
É assim com todos os eventos.
onchange é o listener, change é o evento
onblur é o listener, blur é o evento
..
Entendi, Bruno!
Mas seguinte, tenho que configurar anteriormente esse evento de click? Eu utilizo o Tab Bar do Bootstrap, que já deve haver um evento de 'click' configurado.
var qtd = $("#menuGaleria ul li").length;
var ativo = $("#menuGaleria ul li.active").index();
//pegando proximo item e 'clicando' nele.
$("#menuGaleria ul li").eq(ativo+1).trigger('click');
O código acima não gera efeito. A aba não muda, nada acontece. Está correto?
aparentemente sim, mas não dá para eu afirmar.
Aparece algo no console de erros ? Ctrl + Shift + J no Firefox ou Chrome.
Além disso, essa estratégia de "clicar" me parece bem estranha.
Qual é o efeito que vc está fazendo?
Existe um slideshow dentro de cada tab, e depois que o slideshow de uma tab terminar, ele deve ativar a outra tab ? é isso ?
Nada aparece no console.
A ideia é exatamente esta, um slideshow em cada aba e, ao clicar na seta next da última foto de uma aba, encaminhar para a primeira foto da próxima aba.
Consegui, em partes.
Porém, ele de alguma forma, executa o código mesmo não sendo a última foto da galeria.
self.element.find('.js-galery-zoom').on('slid.bs.carousel',function(e){
var idx=self.element.find('.js-galery-zoom .item.active').index();
self.plot_descricao(data,idx);
self.element.find('.carousel').carousel('pause');
self.element.find('.btn-thumb-galery').removeClass('active');
self.element.find('.btn-thumb-galery[data-index="'+idx+'"]').addClass('active');
if(self.slideshowenabled){
self.counttonext();
}
var galeriaAtiva = $('.galeria[data-active=1]');
var qtdAbas = $("#menuGaleria ul li").length;
var ativo = $("#menuGaleria ul li.active").index();
if($('.galeria[data-active=1] .carousel-inner .item:last-child').hasClass('active')){
galeriaAtiva.find('.carousel-control.right').click(function(){
//alteração de aba
if($("#menuGaleria ul li.active").index()+1 < qtdAbas){
$("#menuGaleria ul li").removeClass('active');
$("#menuGaleria ul li").eq(ativo+1).addClass('active');
}else{
$("#menuGaleria ul li").removeClass('active');
$("#menuGaleria ul li").eq(0).addClass('active');
}
//alteração de galeria
galeriaAtiva.css('display', 'none');
galeriaAtiva.removeAttr('data-active');
$('.galeria').eq(ativo+1).css('display', 'block').attr('data-active', '1');
});
}
});
A função .trigger() dispara um evento. Ai no teu caso vc faz:
$('#proximo_elemento').trigger('click');