W jaki sposób mam wskazać obiekt (linijka 32) aby móc się potem do niego odwołać w funkcji np click (linijka 40). Dodam że wywołanie z linijki 35 działa. Cały kod poniżej.

  1. $(window).load(function()
  2. {
  3. var s = $('#GallerySlider');
  4.  
  5. if( s.length != 0 )
  6. {
  7. var mu = $('img.mu', s); // move up button;
  8. var md = $('img.md', s); // move down button;
  9. var sc = $('div.sc', s); // slider content;
  10.  
  11. if( mu.lenght == 0 || sc.lenght == 0 || md.lenght == 0 )
  12. jQuery.error( "ERROR" );
  13.  
  14. // slider definition;
  15. s.content = sc;
  16. s.items = $('img', sc);
  17. s.position = 0 ;
  18. s.isinmove = false;
  19. s.step = 98;
  20. s.sead = 10;
  21. s.spead = 50;
  22.  
  23. s.move = function( direction )
  24. {
  25. direction = direction > 0 ? 1 : -1;
  26. this.position += direction;
  27. alert( (this.position * this.step) +'px' );
  28. this.content.style.marginTop = (this.position * this.step) +'px';
  29. };
  30.  
  31. // buttons definition;
  32. mu.slider = s;
  33. md.slider = s;
  34.  
  35. mu.slider.move( 1 ) // tutaj to działa;
  36.  
  37. // move up;
  38. mu.click( function() {
  39. var t = $(this);
  40. t.slider.move( 1 ) // a tutaj już NIE działa;
  41. } );
  42.  
  43. // move down;
  44. md.click( function() {
  45. alert( 'do' );
  46. this.slider.move( -1 );
  47. } );
  48. }
  49. });


Jakby kogoś interesowała odpowiedź to należy wprowadzić następującą zmian:
  1. // move up;
  2. mu.click( function() {
  3. mu.slider.move( -1 );
  4. } );