Ir para conteúdo

Arquivado

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

Ismaeldm

[Resolvido] Como selecionar todos os elementos menos o mencionado

Recommended Posts

assim gente, eu estou criando um negócinho doido aqui que funciona assim...

Ao clicar com o botão direito, ele exibe uma DIV próximo ao mouse e anula aquela caixa que abre do navegador (para evitar um pouco aqueles caras que ficam roubando partes do site).

Até aí tudo bem, o meu problema é que com isso veio umas séries de bug, porque o meu caso aqui é que ao clicar com o botão direito no html ele exibe a DIV, ao clicar com o botão esquerdo ele oculta a DIV.

Entretanto, como nós sabemos, a DIV fica dentro do HTML, então fica dando problemas, portanto queria saber se tem como selecionar tudo, menos esta DIV, ou seja, selecionar todo o html tirando a DIV

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, fiz pesquisas e mais pesquisas e não encontrei nenhuma maneira de fazer o que eu queria ao principio...

Entretanto, pesquisando um pouco encontrei uma nova função para mim chamada de "tagName", e ela me ajudou muito na criação desse código.

Deixarei abaixo para quem quizer utiliza-lo algum dia aí pra por no seu site :thumbsup:

 

<html>
<head>
<style>
#rightclick {
height:auto; 
width:200px; 
background-color:#000; 
position: absolute; 
text-align:center; 
display:none;
}
.rightclick {
width: 200px;
}
</style>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function(){
 $('*').live('contextmenu', function(e){
   var left = e.clientX;
   var top = e.clientY;
   var restaura = $('#rightclick').html();
   $('#rightclick *').remove();
   var tagName = $(this)[0].tagName;
   if (tagName=='DIV') {
     var conflict = $(this).attr('class');
     if (conflict=='rightclick') {$('#rightclick').append(restaura);return false};
   };
   if (tagName=='IMG') {
     var tagName = $(this).parent()[0].tagName;
     $('#rightclick').append('<div class="rightclick"><a href="javascript:;" class="rightclick">Abrir Imagem em Nova Aba</a></div>');
   };
   if (tagName=='A'){
     var conflict = $(this).attr('class');
     if (conflict=='rightclick') {$('#rightclick').append(restaura);return false};
     $('#rightclick').append('<div class="rightclick"><a href="javascript:;" class="rightclick">Abrir Link em Nova Guia</a></div><div class="rightclick"><a href="javascript:;" class="rightclick">Abrir Link em Nova Aba</a></div>');
   };
   $('#rightclick').prepend('<div class="rightclick"><a href="http://www.raruto-project.blogspot.com" target="_blank" class="rightclick">Home</a></div><div class="rightclick"><a href="http://www.raruto-projectlog.blogspot.com" target="_blank" class="rightclick">Leitor On-line</a></div>').css('margin-left', left).css('margin-top', top).hide().fadeIn(300);
   return false;
 });
 $('html').click(function(){
   $('#rightclick').fadeOut(200);
 });
});
</script>
<title>Right Click</title>
</head>
<body>
<div id="rightclick" align="center"></div>
<div><a>Link com imagem:<br><img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif"/></a></div>
<br><div><a href="#">Link Sem imagem</a></div>
<br><div>Imagem sem link:<br><img src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif"/></div>
</body> 
</html>

 

Não me importei com o visual da página, coloquei todo meu foco no funcionamento do script, então basta vocês adaptarem como quiserem :yay:

Podem reparar que o script detecta quando é link, quando é imagem, quando é imagem com link, ou quando são outras tags, o que ajuda bastante tbm...

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.