Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][jquery][smarty]problem z dzialaniem slideshow
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
piasekps
czesc wszystkim

mam nadzieje ze w dobrym dziale umiescilem ten text

korzystam z tego przykladu slideshow
do utworzenia przegladania zdjec w galerii, wszystko ladnie dziala dopoki kod js
mam w osobnym pliku js, niestety takie rozwiazanie wymusza u mnie stala liczbe zdjec wyswietlanych
postanowilem wiec delikatnie zmienic ten problem

poniewaz cala strone buduje z pomoca smarty wiec stwierdzilem ze najlepiej bedzie poprostu przesylac
liczbe fotek za pomoca zmiennej [-nr-]
dlatego przenioslem caly kod js do szablonu i tam wstawiam zmienna

i sprawa wyglada tak ze po wrzuceniu js do szablonu skrypt przestal dzialac
i nie mam pojecia dlaczego, zrodlo strony pokazuje ze zmienna zostala wprowadzona poprawnie
ale niestety nie dziala, pojawily sie miniaturki (drugi foreach w kodzie), ale nie ma glownych zdjec
nacisniecie miniaturek tez nie dziala,

dokladnie to samo dzieje sie gdy wkleje js ze stala wartoscia 'nr'

odrazu uprzedzam komentarze wiem ze standardowo smarty korzysta z {} ale zmienilem sobie
na [--] wiec nie w tym problem

bede wdzieczny za jaka kolwiek pomoc, uprzedzam ze nie jestem orlem z js

pozdrawiam
p.s.

  1. <script type="text/javascript">
  2.  
  3. //=============== art gellery ================================
  4. var $$ = $.fn;
  5.  
  6. $$.extend({
  7. SplitID2 : function()
  8. {return this.attr('id').split('-').pop();},
  9.  
  10. Slideshow2 : {
  11. Ready : function()
  12. {
  13. $('div.ops')
  14. .click(
  15. function() {
  16. $$.Slideshow2.Interrupted = true;
  17.  
  18. $('div.photoBox').hide();
  19. $('div.ops').removeClass('opsActive');
  20.  
  21. $('div#photo-' + $(this).SplitID()).show()
  22. $(this).addClass('opsActive');
  23. }
  24. );
  25.  
  26. this.Counter = 1;
  27. this.Interrupted = false;
  28.  
  29. this.Transition2();
  30. },
  31.  
  32. Transition2 : function()
  33. {
  34. if (this.Interrupted)
  35. {return;}
  36.  
  37. this.Last = this.Counter - 1;
  38.  
  39. if (this.Last < 1)
  40. {this.Last = [-$nr-];}
  41.  
  42. $('div#photo-' + this.Last).fadeOut(
  43. 'fast',
  44. function() {
  45. $('div#phcon-' + $$.Slideshow2.Last).removeClass('opsActive');
  46. $('div#phcon-' + $$.Slideshow2.Counter).addClass('opsActive');
  47. $('div#photo-' + $$.Slideshow2.Counter).fadeIn('fast');
  48.  
  49. $$.Slideshow2.Counter++;
  50.  
  51. if ($$.Slideshow2.Counter > [-$nr-])
  52. {$$.Slideshow2.Counter = 1;}
  53. }
  54. );
  55. }
  56. }
  57. });
  58. $(document).ready(
  59. function() {$$.Slideshow2.Ready();}
  60. );
  61. //-->
  62. <div id="bph">
  63. [-foreach from=$photo key=k item=v name=min-]
  64. <div id="photo-[-$smarty.foreach.min.iteration-]" class="photoBox">
  65. <img src="[-$v.photo-]" title="[-$v.ph_descrb-]" alt="[-$v.ph_descrb-]" />
  66. <div class="phTxt">
  67. <div class="fot">Fot. <span> [-$v.ph_autor-]</span></div>
  68. <div class="dsc">[-$v.ph_descrb-]</div>
  69. </div><!-- phTxt -->
  70. </div><!-- photoBox -->
  71. [-/foreach-]
  72.  
  73. <div id="phControl">
  74. [-foreach from = $photo key = k item = v name = min-]
  75. <div class="ops" id="phcon-[-$smarty.foreach.min.iteration-]">
  76. <img src="[-$v.photo-]" title="[-$v.ph_descrb-]" alt="[-$v.ph_descrb-]" />
  77. </div><!-- ops -->
  78. [-/foreach-]
  79. </div><!-- phControl -->
  80. </div><!-- bph -->
  81. &nbsp;
erix
Cytat
i sprawa wyglada tak ze po wrzuceniu js do szablonu skrypt przestal dzialac

Google: {literal}
piasekps
niestety {literal} ani nawet {ldelim},{rdelim}
nie pomoglo rozwiazac problemu

jakies jeszcze pomysly?

pozdrawiam
p.s.
erix
Pokaż, jak to zrobiłeś.
piasekps
przyklad z literal
  1. <script type="text/javascript">
  2. [-literal-]
  3. js code
  4. [-/literal-]

sprawdzalem tez opcje druga
  1. [-literal-]
  2. <script type="text/javascript">
  3. (...) js code (...)
  4. [-/literal-]


oraz z ldelim i rdelim
  1. if (this.Last < 1)
  2. {this.Last = [-ldelim-][-$nr-][-rdelim-];}
  3.  
  4. $('div#photo-' + this.Last).fadeOut('fast', function() {
  5. $('div#phcon-' + $$.Slideshow2.Last).removeClass('opsActive');
  6. $('div#phcon-' + $$.Slideshow2.Counter).addClass('opsActive');
  7. $('div#photo-' + $$.Slideshow2.Counter).fadeIn('fast');
  8. $$.Slideshow2.Counter++;
  9.  
  10. if ($$.Slideshow2.Counter > [-ldelim-][-$nr-][-rdelim-];)
  11. {$$.Slideshow2.Counter = 1;}
erix
Kod
[-literal-]

To na pewno ma tak być? Mam wątpliwości.
piasekps
Cytat(erix @ 27.08.2009, 18:01:02 ) *
Kod
[-literal-]

To na pewno ma tak być? Mam wątpliwości.



te znaczniki sa uzywane przeze mnie normalnie wstaw sobie {literal} zamiast [-literal-]
mnie sie z takimi latwiej pracuje, bo wczesniej mi sie poprostu mylilo ze to zwykly tekst

wkoncu mi zadzialalo,

ten sam kod mam w 2 miejscach w osobnym pliku .js ze stala wartoscia 2
oraz w szablonie ze zmienna [-$nr-] gdzie cod js jest pomiedzy literal
a sama zmienna pomiedzy ldelim i rdelim,

jednak jak ktos wie jak zrobic to 'ladniej' to czekam

szkoda ze nie moge sobie dodac 'pomogl' winksmiley.jpg
pozdrawiam
p.s.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.