Chamar `click ()` no jQuery apenas desencadeia eventos anexados do jQuery?
-
20-09-2019 - |
Pergunta
Eu tenho um site Magento, que inclui a biblioteca JavaScript do protótipo.
Algum tempo atrás, eu adicionei jQuery também.
Antes disso, no entanto, eu incluía uma caixa de luz baseada em protótipo. Foi acionado adicionando o atributo rel="lightbox[gallery]"
.
Agora eu gostaria de fazer com que uma caixa de luz apareça no carregamento da página. Eu sei nada Sobre o protótipo, então tentei criar um link oculto com o jQuery e depois ligar $('#special').click()
mas sem sucesso. Se eu realmente clicar no link, no entanto, ele funciona bem.
Tudo Meu código jQuery está em uma função como assim
jQuery.noConflict();
jQuery(function($) {
// Now I can use $ in here... :)
});
O mesmo acontece com o jQuery click()
Somente desencadeia eventos que o jQuery bateu? Se sim, como eu poderia ligar para o evento de clique ou acionar a caixa de luz no protótipo?
Solução
Então, o click () do jQuery () aciona apenas eventos que o jQuery se escondeu?
Também acionará eventos vinculados por meio de estilo antigo onNome do evento
atributos. Mas isso não vai gatilho eventos vinculados via addEventListener()
ou attachEvent()
(que, Afaik, são o que o protótipo usa para vincular eventos ...)
No entanto, você posso simular um evento de clique real. Vai ser apenas um pouco mais de esforço ...
Ver: Como posso simular um clique em uma tag de âncora?
Veja também: Acionar um evento com protótipo
Outras dicas
Use "jQuery" em vez de "$". A função $ é definida no protótipo e no jQuery. É possível que você esteja tentando chamar o método "click ()" em objeto selecionado por protótipo, que pode não funcionar (não sei protótipo, exceto que ele define "$" função também) (Nota: Por favor dê uma olhada em http://docs.jquery.com/using_jquery_with_other_libraries )
Isso não responde exatamente à sua pergunta, mas por que você não usa o Lightbox para o jQuery? ;)http://leandrovieira.com/projects/jquery/lightbox/
Ao usar o jQuery, tente usar jQuery Sem conflito para que por padrão $
refere -se a Protoype e usando jQuery
Quando você deseja usar o jQuery. Para ser honesto, na minha experiência, sempre que eu adicionei duas estruturas e tentei fazê -las trabalhar juntas, é sempre um problema e quase perto do inferno. Que especial você está tentando alcançar usando o jQuery em um projeto feito com protótipo?
Para usar $ como você perguntar, faça isso:
jQuery(function() {
(function($) {
//
// your initialization code goes in here
// and you can use '$' safely as the name
// of the jQuery object, even though
// window.$ is something else
//
})(jQuery);
});
Solução muito fácil é anexar $ j = jQuery.noconflict no final do arquivo de origem jQuery. Então, globalmente, você pode apenas usar o $ J e não precisa se preocupar com funções de embalagem