Domanda

Ho un sito di Magento, che comprende il prototipo libreria JavaScript.

Qualche tempo fa, ho aggiunto jQuery pure.

Prima di allora però, avrei incluso un prototipo basato ID. E 'stato attivato con l'aggiunta del rel="lightbox[gallery]" attributo.

Ora vorrei fare un lightbox apparire al caricamento della pagina. So non su prototipo, così ho cercato di creare un legame nascosto con jQuery e quindi chiamando $('#special').click() ma senza alcun risultato. Se io in realtà scatto il collegamento tuttavia, funziona benissimo.

Tutti il mio codice jQuery è una funzione in questo modo

jQuery.noConflict();
jQuery(function($) {
 // Now I can use $ in here... :)

});

Così fa click() di jQuery innescare solo gli eventi che jQuery ha binded? Se sì, come ho potuto chiamare l'evento click o innescare il lightbox di prototipo?

È stato utile?

Soluzione

  

Così fa clic di jQuery () innescare solo gli eventi che jQuery ha binded?

Sarà anche innescare eventi legati tramite attributi onEventName vecchio stile. Ma non eventi trigger legati tramite addEventListener() o attachEvent() (che, per quanto ne so, sono ciò che usa Prototype per legare gli eventi ...)

Tuttavia, è possono simulare un evento reale click. Ci vorrà solo un po 'più di sforzo ...

Vedi: Come posso simulare un clic per un tag di ancoraggio?

Vedere anche: Attiva un evento con Prototype

Altri suggerimenti

  1. usare "jQuery" invece di "$". Funzione $ è definita sia in Prototype e jQuery. è possibile si sta cercando di chiamare "click ()" metodo su oggetto Prototype-selezionati, che non può funzionare (non so prototipo a tutti, tranne che definisce la funzione "$" pure) (Nota: si prega di dare un'occhiata al http://docs.jquery.com/Using_jQuery_with_Other_Libraries )

  2. Questa non è esattamente rispondere alla tua domanda, ma perché non si utilizza lightbox per jQuery? ;) http://leandrovieira.com/projects/jquery/lightbox/

Quando si utilizza jQuery, provare a utilizzare jQuery noConflict così per definizione $ riferisce al prototipo e l'utilizzo di jQuery quando si desidera utilizzare jQuery. Per essere onesti nella mia esperienza quando mai ho aggiunto due quadri e ho cercato di farli lavorare insieme è sempre un problema e quasi vicino l'inferno. Cosa speciale stai cercando di raggiungere utilizzando jQuery in un progetto realizzato con prototipo?

Per utilizzare $ come si chiede, fare questo:

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);
});

molto molto facile soluzione è quella di aggiungere $ j = jQuery.noConflict alla fine del file di origine jquery. poi a livello globale si può semplicemente utilizzare $ j e non devono preoccuparsi di funzioni di confezionamento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top