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?

Foi útil?

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

  1. 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 )

  2. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top