Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykel-ctba

Capturar elementos com classe X mas que não tenham também uma classe Y

Recommended Posts

Fala galera!

 

Tenho um script que dá um fade na página após um clique que redirecione para outra página.

Estava funcionando lindamente até que surgiu a necessidade de implantar um FANCYBOX (janelas tipo modal para imagem).

 

Ao clicar no link que tem a classe .fancybox, ele está direcionando para outra página ao inves de abrir o modal. Tudo devido a esse script. Gostaria que ele o newUrl ignorasse os elementos que tenham a classe "fancybox". Que recurso eu uso? Um simples IF/ELSE? Ou existe um .ignore("fancybox") ou algo assim hahahahah

	$(document).on("click", "a", function ()
	{
		var newUrl = $(this).attr("href"); // Ignorar
		if (!newUrl || newUrl[0] === "#") {
			location.hash = newUrl;
			return;
		}
	
		$("html").fadeOut(function () {
			location = newUrl;
		});
	
		return false;
	});


---

Resolvido, hahah

		// * Ignorar fancyboxes
		if(!$(this).hasClass("fancybox"))
		{
			var newUrl = $(this).attr("href");
			if (!newUrl || newUrl[0] === "#") {
				location.hash = newUrl;
				return;
			}
		
			$("html").fadeOut(function () {
				location = newUrl;
			});
		
			return false;
		}

Mas caso exista algum jeito mais simples, e quiserem passar, agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

$(document).on("click", "a", function ()
por

 

$(document).on("click", "a:not(.fancybox)", function ()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma Duvida, William:

 

Eu consigo atribuir essa regra a varias classes?

Gostaria que além da classe .fancybox, a classe .no-fade também fosse ignorada.

 

Tentei dessa maneira:

$(document).on("click", "a:not(.fancybox),a:not(.no-fade)", function ()

Mas sem sucesso.

 

---

resolvido também, hahah

a:not(.fancybox,.no-fade)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Opa, surgiu mais uma necessidade.

Infelizmente esse scriptzinho está em conflito com meu CKEditor. Todo botão do CKEditor que eu clico ele está dando o fade também. Bom, normal.


Gostaria de isolar também todo link que estiver dentro da seguinte div: #cke_txConteudo


É possivel?


---


Hehe, mais tentativas e resolvi.


$(document).on("click", "a:not(.fancybox, .no-fade, #cke_txConteudo a)", function ()

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.