Witam. Mam następujący problem: została dla mnie wykonana strona, na której znajduje się przewijana galeria miniaturek (jcarousel) oraz duże pole, w którym pokazuje się duży obrazek po kliknięciu na jego miniaturkę w jcarousel. Wszystko napisane w jQuery.
Jcarousel nie spełniał wszystkich wymagań i został usunięty. Zastąpił go analogiczny moduł napisany we Flashu. Flash został ustawiony tak, że po kliknięciu na miniaturkę uruchamia się funkcja JavaScript z parametrem - id klikniętej miniaturki.

Teraz mój problem polega na tym, że muszę połączyć tego Flasha z tych co zostało napisane w JQuery. Najgorsze jest to że nie znam w ogóle JS ani tym bardziej JQuery. Mam więc uruchamianą funkcję JS loadpicture(id) i kod JQuery z poprzedniego modułu, który wygląda tak:

  1. <script type="text/javascript">
  2. jQuery(document).ready(function() {
  3.  
  4. });


  1. jQuery(document).ready(function() {
  2. jQuery('#jCarousel').jcarousel({
  3. itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) {carousel.remove(i);}},
  4. itemLoadCallback: mycarousel_itemLoadCallback,
  5. scroll: 5
  6. });
  7. jQuery('#gallerysec1 li a').live("click", function(e) {
  8. e.preventDefault();
  9. var elIndex = $(this).parent().index();
  10. var elLi = jQuery("ul#gallery1 li").get(elIndex);
  11. jQuery("ul#gallery1 li img").hide();
  12. $("img", elLi).fadeIn(500);
  13. jQuery('#gallerysec1 li a').css('background-position', '-6px 0');
  14. $(this).css('background-position', '0 0');
  15. });
  16. jQuery('#gallery1 li img').live("mouseover", function() {
  17. remove_gallery_arrows();
  18. var imgWidth = $(this).width();
  19. var imgHeight = $(this).height();
  20. var imgPosition = $(this).position();
  21. $(this).parent().not(':last-child').append('<span id="imageArrowRight"></span>');
  22. $(this).parent().not(':first-child').append('<span id="imageArrowLeft"></span>');
  23. $('#imageArrowRight').css({'left' : imgPosition.left+imgWidth-25+2, 'top': imgPosition.top+(imgHeight/2)-13})
  24. .click(function(){
  25. var elIndex = $(this).parent().index();
  26. var x = jQuery('#gallerysec1 li').get(elIndex+1);
  27. jQuery('#gallerysec1 li a').css('background-position', '-6px 0');
  28. $("a", x).css('background-position', '0 0');
  29. jQuery("ul#gallery1 li img").hide();
  30. var nextImage = $(this).parent().next();
  31. $("img", nextImage).fadeIn(500);
  32. remove_gallery_arrows();
  33. });
  34. $('#imageArrowLeft').css({'left' : imgPosition.left+2, 'top': imgPosition.top+(imgHeight/2)-13})
  35. .click(function(){
  36. var elIndex = $(this).parent().index();
  37. var x = jQuery('#gallerysec1 li').get(elIndex-1);
  38. jQuery('#gallerysec1 li a').css('background-position', '-6px 0');
  39. $("a", x).css('background-position', '0 0');
  40. jQuery("ul#gallery1 li img").hide();
  41. var prevImage = $(this).parent().prev();
  42. $("img", prevImage).fadeIn(500);
  43. remove_gallery_arrows();
  44. });
  45. });
  46. jQuery('#gallery1 li').live("mouseleave", function() {
  47. remove_gallery_arrows();
  48. });
  49. });


Część tego kodu jest odpowiedzialna za obsługę tych powiększonych zdjęć (np. pojawiają się na nich strzałki prawo/lewo, itp.), ale część jak rozumiem jest odpowiedzialna za nasłuch kliknięcia w miniaturkę, prawdopodobnie ta część:
  1. jQuery('#gallerysec1 li a').live("click", function(e) {

Wnioskuję, że jQuery nasłucuje kontener o id="gallerysec1" a w nim hiperłącze w <li> - ale w nowym module nie mam przecież żadnych takich elementów i przy tym wysiadam. Przede wszystkim nie wiem czy takie połączenie jest w ogóle wykonalne. Jeżeli jest - czy jest to skomplikowana operacja? Co należałoby wykonać? Dzięki za wszelkie podpowiedzi.