Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema noConflict jQuery clique no link

25-10-2012 12:46

Muita gente pode ter problema ao suas duas bibliotecas na mesma página, tipo, prototype com jQuery. Isso vai dar conflito entre as duas bibliotecas.

A estrutura para usar duas bibliotecas ao mesmo tempo é essa

// biblioteca Prototype

// biblioteca jQuery

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
// AQUI OS SCRIPTS USADOS NO JQUERY
});
</script>

Para quem tem onclick em algum link no documento para carregar via jQuery, não pode fazer a chamada no click. Tem que chamar via jQuery, assim:

$('#id_do_link').click(function() { // fazer algo ao ser clicado });

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 18:46

Estou usando Greybox (para abrir janelas contendo textos e formulários) e Highslide (para abrir janelas contendo fotos). Possuo links para as janelas para as duas finalidades no mesmo arquivo, ou cada um num arquivo, isoladamente. Num caso e noutro, não estão funcionando total ou parcialmente: o link para a janela Greybox não funciona, e a janela do Highslide é aberta, a foto é exibida, porém, os comandos para avançar e retroceder as fotos não funcionam, aparecendo os links referentes aos comandos, mas não os botões referentes a tais comandos. O interessante é que, se, no início do arquivo que contém tais links, antes da tag de abertura do PHP, insiro estas tags: <script></script>, esse problema é sanado, mas, ao se exibir o código fonte, essas tags vazias são exibidas antes das tags HTML. No head do HTML, além de ser chamado o JavaScript do Greybox e do Highslide, também é chamado o arquivo jQuery.

Estou pesquisando a respeito, encontrei algo semelhante, entre Greybox e jQuery Cycle Plugin, que foi resolvido com jQuery noConflict (http://stackoverflow.com/questions/5167 ... x-conflict), mas não sei como implementar isso, que código insiro no jQuery noConflict, que, no exemplo que foi dado logo atrás, entra no lugar desta observação: // AQUI OS SCRIPTS USADOS NO JQUERY. Que conteúdo devo inserir? De qual arquivo?
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 20:09

Apenas para esclarecer, o que faz não dar o erro é isto:

<? require("../../aco/lnk.php"); //inseri as tags vazias <script></script> abaixo por conta de conflito com o Greybox após ajuste de CSS e JavaScript no código fonte. Verificar causa adiante. ?> <script></script> <?

Mas há o inconveniente de tais tags vazias aparecerem na exibição do código fonte, e, na verdade, eu gostaria de saber onde está o erro, o conflito, ou o que seja.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

28-03-2016 20:19

No link está recomendado o uso do $.noConflict().

Pelo que entendi carrega as outras bibliotecas, após carrega o jQuery. E os códigos jQuery são carregados seguindo no $.noConflict.

Já que seu código funciona com as tags scripts vazia, deixa por padrão uma base para scripts em jQuery.

<script> $.noConflict(); $(function() { // caso necessite carregar algum jQuery }); </script>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 20:54

Mantenho as tags vazias: <script></script>? Não sei se é conflito entre as duas bibliotecas. Apesar de as tags vazias serem uma gambiarra, mas funcionando o código, isso é o que importa, então?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

28-03-2016 21:12

Sim, provavelmente é conflito. Mas recomendo ao invés de deixar as tags script vazia o usar o seguinte:

<script> $.noConflict(); $(function() { // caso necessite carregar algum jQuery }); </script>

Pelo menos você pode precisar mais pra frente.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 21:34

Então. É justamente isso que não sei fazer. E eu não sei o que está utilizando jQuery. Não tenho certeza se as bibliotecas que estou usando utilizam.

O Highslide chama dois arquivos JavaScript:

<script type="text/javascript" src="../../highslide/highslide/highslide-with-gallery.js"></script> <script type="text/javascript" src="../../aco/js_highslide.js"></script>.

O Greybox chama estes:

<script type="text/javascript" src="../../gbx/AJS.js"></script> <script type="text/javascript" src="../../gbx/AJS_fx.js"></script> <script type="text/javascript" src="../../gbx/gb_scripts.js"></script>

Ainda há o link para jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>

Já os mudei de lugar, excluí links, mantendo outros, mas o problema persiste.

E eu não sei o que inserir aqui:

<script> $.noConflict(); $(function() { // caso necessite carregar algum jQuery }); </script>

0
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 21:41

Aqui fala que Greybox é um plugin jQuery: http://www.jqueryscript.net/lightbox/Si ... eyBox.html.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

28-03-2016 22:02

Dei uma olhada no código-fonte da página de demonstração e não tem chamada do jquery.js lá.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 22:22

Então, Greybox não é jQuery. É isso?

Também não há chamada para tal arquivo no código fonte do Highslide: view-source:http://highslide.com/. Então, também não seria jQuery.

Estaria ocorrendo conflito de JavaScript, então, no meu código, em face dessas duas bibliotecas?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

28-03-2016 22:27

Eu estava achando que os scripts eram de bibliotecas diferente, por isso dava conflito.
Mas aparentemente ambos scripts são feitos em puro JavaScript.

Saber especificamente o que causa conflito entre eles e o jQuery é bem complicado.

O ideal era fazer o teste da eliminação.

Deixa somente o jQuery e um dos scripts. Depois faz o teste com o outro. E verifica se um ou ambos que dá conflito.

Ai procura outros scripts que tenham a mesma função que precisa e que não dê conflitos com o jQuery. Se possível scripts que sejam plugin jQuery.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

28-03-2016 22:50

Eu procurei fazer isso excluindo as chamadas de um e de outro, e, depois, do link para o jQuery. Mas continuou. Vou verificar nos códigos.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

29-03-2016 08:21

Estou pensando que a melhor relação custo/benefício atual é manter as tags vazias, com o código funcionando, como está. Isso, creio, não implica na segurança do site (implica?). Vou continuar a revisão do código, e, mais adiante, tentarei, novamente, identificar o conflito, e, se não conseguir identificá-lo, trocarei as bibliotecas, como você sugeriu. Obrigado pela força.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

29-03-2016 09:35

Cara, na boa: Deus é Pai, e vocês são anjos a socorrer quem quer aprender e busca auxílio aqui. Consegui eliminar o conflito. Testei no Firefox, IE, Chrome, Opera e Safari, e funciona perfeitamente.

Se me permitir dizer como resolvi, neste tópico viewtopic.php?f=1&t=9694&p=32835#p32835, vocês me ensinaram a trabalhar com PHP, CSS e JavaScript inserindo AddType application/x-httpd-php .css e AddType application/x-httpd-php .js no arquivo .htaccess; inserindo <? header("Content-type: text/css"); ?> no arquivo CSS, e inserindo <? header('Content-Type: application/javascript'); ?> no arquivo JavaScript.

Fiz as inserções de <? header("Content-type: text/css"); ?> e <? header('Content-Type: application/javascript'); ?>, respectivamente, nos arquivos CSS e JavaScript de ambas as bibliotecas.

A janela Greybox funcionou corretamente, mas a janela Highslide não funcionou. Então, excluí <? header('Content-Type: application/javascript'); ?> dos arquivos JavaScript de ambas as bibliotecas, mas mantive <? header("Content-type: text/css"); ?> nos arquivos CSS; excluí as tags vazias <script></script>, e ambas as janelas funcionaram corretamente. Parece que o conflito é de CSS.

Eu não queria me desfazer dessas duas bibliotecas, pois demorei bastante tempo personalizando-as.

Vencida mais uma etapa da revisão de meu código.

Obrigado, novamente, pela força.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

29-03-2016 10:24

Bom que resolveu.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

29-03-2016 11:50

Tenho uma dúvida sobre o código abaixo, para uma outra situação:

<script> $.noConflict(); $(function() { // caso necessite carregar algum jQuery }); </script>

Eu o insiro diretamente entre as tags <head></head> do HTML, ou o insiro num arquivo js e o chamo a partir das tags <head></head>; ou nenhuma das situações?

Tenho este código:

<script type="text/javascript"> var bt = BigText.noConflict(true); $.fn.bt = bt.jQueryMethod; $('#txt_seq').bt(); </script>

Ele estava no arquivo no qual havia um outro conflito, mas, na exibição do código fonte, era exibido antes do HTML. Daí, eu o inseri entre as tags <head></head>; continuou não havendo o conflito, e não mais foi exibido antes do HTML. Mas não sei se fiz certo colocando-o diretamente entre as tags <head></head>.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema noConflict jQuery clique no link

29-03-2016 12:43

Você pode colocar inline, ou seja, diretamente no HTML ou incluir em um arquivo externo, sempre mantendo a ordem para que seu script não dê conflito.

Já arquivos externos .js, podem ser armazenados no cache do navegador do usuário, melhorando o carregamento do documento.
Então preferencialmente faça chamada externa, é até melhor para edição posteriores.

Os scripts devem estar preferencialmente sempre dentro das tags head.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Mensagens: 1283
Sexo: Masculino

Re: Problema noConflict jQuery clique no link

05-04-2016 19:19

Entendi. Obrigado.
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado