Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Efekt "click" (wcisniecia) w jquery
Forum PHP.pl > Forum > XML, AJAX
AndyPSV
http://img3.imageshack.us/img3/7678/clickajax.gif

chodzi o to w jaki sposob zrobic "wcisniecie" (i aby bylo one przekazane w formularzu)
moglby ktos podac jakis przyklad lub gotowy skrypt? (mysle, ze jest bardzo prosty)
masiakla
$(selector).click(); lub jak chcesz wysłac formularz to $(selector).submit();
wiiir
wydaje mi sie ze jemu chodzi bardziej o jakby animacje klikniecia, czyli w przypadku mousedown i mouseup
Napisz funkcje w jquery
  1. $("jakis selektor").mousedown(function(){
  2. // tutaj zmieniasz sobie grafike przyciku, czyli np tlo albo src:
  3. $(this).css("background","tutaj twoj obrazek");
  4. //albo
  5. $(this).attr("src","tutaj twoj obrazek");
  6. }).mouseup(function(){
  7. //tutaj wywolujesz to co napisal kolega wyzej :)
  8. // w sumie mozna jeszcze przywrocic obrazek przed kliknieciem
  9. })
  10.  

w ten sposob mozesz uzykac efekt wcisniecia smile.gif
AndyPSV
dziala! super dziala
jednak to co potrzebuje jeszcze to:
1. aby tylko jedna z "raczek" mogla byc wcisnieta
2. aby w <form> gdzie sa znajduja sie te obrazki byl jakis przekaznik w stylu $_POST['thumbdown'] , $_POST['thumbup'] i aby pokazywal, ktory jest "on" (najlepiej $_POST['thumb'] -> 'up' or 'down')

moglby ktos pomoc?
dziekuje serdecznie

oto kod:

  1. <script type='text/javascript'>
  2. /* <![CDATA[ */
  3. jQuery(function($){
  4. $("#thumbup").mousedown(function(){
  5. $(this).css("background","<% $TPL %>i/ico/thumb_up_.png");
  6. $(this).attr("src","<% $TPL %>i/ico/thumb_up.png");
  7. }).mouseup(function(){
  8. $(this).click();
  9. })
  10.  
  11. });
  12.  
  13. jQuery(function($){
  14. $("#thumbdown").mousedown(function(){
  15. $(this).css("background","<% $TPL %>i/ico/thumb_down_.png");
  16. $(this).attr("src","<% $TPL %>i/ico/thumb_down.png");
  17. }).mouseup(function(){
  18. $(this).click();
  19. })
  20.  
  21. });
  22. /* ]]> */
  23. </script>
  24.  
  25. ----
  26.  
  27. <img src='<% $TPL %>i/ico/thumb_up_.png' id='thumbup' alt='thumb up'/> <img src='<% $TPL %>i/ico/thumb_down_.png' id='thumbdown' alt='thumb down'/>
wiiir
w tym kodzie co napisales jest niepotrzebna jedna rzecz, mianowicie napisalem ci cos takiego
  1.  
  2. $(this).css("background","tutaj twoj obrazek");
  3.  
  4. //albo
  5.  
  6. $(this).attr("src","tutaj twoj obrazek");

tam jest albo wiec nie musisz wykonywac 2 operacji tylko ta ktora u ciebie powinna byc wykonana z tego co sadze to u ciebie ta druga czy

  1. $(this).attr("src","tutaj twoj obrazek");


co do twoich pytan:
odp 1
Piszesz tylko funkcje dla jednego selectora, nie wiem ktory chcesz zeby byl wciskany, wiec tylko np dla przycisku o id thumbdown lub thumbup

odp 2
  1. //js
  2. //funkcja ktora ustawia wartosc w formularzu w zaleznosci na co klikniemy
  3. function wyslij(typ){
  4. $(":input[name=type_thumb]").val(typ)
  5. //wyslanie formularza
  6. $("form[name=thumb]").submit();
  7. }
  8. <form name="thumb" method="POST" action="toja sciezka do skryptu">
  9. <input type="hidden" name="type_thumb">
  10. </form>


i w skrycie odbierasz

  1. $zmienna = $_POST['type_thumb']?;


i teraz u ciebie w kodzie gdzie masz obsluge tych raczek czyli

  1. jQuery(function($){
  2. $("#thumbdown").mousedown(function(){
  3. $(this).css("background","<% $TPL %>i/ico/thumb_down_.png");
  4. $(this).attr("src","<% $TPL %>i/ico/thumb_down.png");
  5. }).mouseup(function(){
  6. /*
  7. * tutaj uruchum funckje do wysylania, $(this).click() nie musi byc bo mouseup jest rowno znaczne
  8. */
  9. wyslij(0); // 0 jesli ktos oddal glos na minus, 1 gdy ktos oddal glos na plus
  10. })
  11.  

AndyPSV
nie testowalem jeszcze formularza, jednak zostala ostatnia rzecz: moze wybrac tylko jedna opcje -> albo raczke do gory albo do dolu; kod wyglada tak
prosilbym o ostatnia pomoc, dziekuje; @wiiir: dzieki serdeczne za pomoc do tej pory

  1. <script type='text/javascript'>
  2. /* <![CDATA[ */
  3. jQuery(function($){
  4. $("#thumbdown").mousedown(function(){
  5. $(this).css("background","<% $TPL %>i/ico/thumb_down_.png");
  6. $(this).attr("src","<% $TPL %>i/ico/thumb_down.png");
  7. }).mouseup(function(){
  8. $(this).click();
  9. wyslij(0);
  10. })
  11. });
  12.  
  13. jQuery(function($){
  14. $("#thumbup").mousedown(function(){
  15. $(this).css("background","<% $TPL %>i/ico/thumb_up_.png");
  16. $(this).attr("src","<% $TPL %>i/ico/thumb_up.png");
  17. }).mouseup(function(){
  18. $(this).click();
  19. wyslij(1);
  20. })
  21. });
  22. /* ]]> */
  23. </script>
  24.  
  25. function wyslij(typ){
  26. $(":input[name=type_thumb]").val(typ)
  27. $("form[name=thumb]").submit();
  28. }
  29. </script>
  30.  
  31. <br/><br/>
  32. <div class="reference">
  33. <h5><% $_[references]|upper %></h5><br/>
  34. <% $_[reference_nfo] %><br/>
  35.  
  36. <form action='<% $URL %><% $_GET[0] %>/reference' method='post'>
  37. <div>
  38. <input type='hidden' name='st4' value='<% $HIDE %>'/>
  39. <input type="hidden" name="type_thumb">
  40.  
  41. <div style='padding-top:5px'><div class='l'><img src='<% $TPL %>i/ico/thumb_up_.png' id='thumbup' alt='thumb up'/> <img src='<% $TPL %>i/ico/thumb_down_.png' id='thumbdown' alt='thumb down'/>
  42. <input type='text' name='reference' id='reference' maxlength="999" style='width:195px' value='' title='<% $_[leave_reference] %>'/>&nbsp;</div><div class='l'><% include file = $TPLx.'m/_/save'.$HTML %></div><div class='f'></div></div>
  43. </div>
  44. </form>
wiiir
nie rozumiem za bardzo.. ma na stronie 2 raczki i albo klika w jedna albo w druga

PS. w twoim wypadku to chyba nie bedzie potrzebne
  1. $(this).css("background","<% $TPL %>i/ico/thumb_down_.png");
  2. $(this).css("background","<% $TPL %>i/ico/thumb_up_.png");
  3. $(this).click();
AndyPSV
chodzi o to, ze sa 2 raczki na stronie i 2wie da sie zaznaczyc!
chodzi o to, aby jedna tylko raczke dalo sie zaznaczyc na raz
wiiir
masz na mysli to ze jest wiecej takich formularzy na stronie gdzie mozna oddac glos czy cos tak ? No w tym przypadku te nasze funkcje nie beda dzialac jak trzeba.. dobrze cie rozumiem?
AndyPSV
mam tylko to:

wyzwanie polega tylko na tym, ze istnieje mozliwosc wcisniecia NARAZ dwoch przyciskow, chce aby bylo mozna wcisnac tylko jeden
czyli jak np. wcisne jeden i bede chcial drugi wcisnac -> zmienia sie zaznaczenie na ten drugi

zrozumiales wszystko?

  1. <script type='text/javascript'>
  2. /* <![CDATA[ */
  3. jQuery(function($){
  4. $("#thumbdown").mousedown(function(){
  5. $(this).css("background","<% $TPL %>i/ico/thumb_down_.png");
  6. $(this).attr("src","<% $TPL %>i/ico/thumb_down.png");
  7. }).mouseup(function(){
  8. $(this).click();
  9. wyslij(0);
  10. })
  11. });
  12.  
  13. jQuery(function($){
  14. $("#thumbup").mousedown(function(){
  15. $(this).css("background","<% $TPL %>i/ico/thumb_up_.png");
  16. $(this).attr("src","<% $TPL %>i/ico/thumb_up.png");
  17. }).mouseup(function(){
  18. $(this).click();
  19. wyslij(1);
  20. })
  21. });
  22. /* ]]> */
  23. </script>
  24.  
  25. function wyslij(typ){
  26. $(":input[name=type_thumb]").val(typ)
  27. $("form[name=thumb]").submit();
  28. }
  29. </script>
  30.  
  31. <br/><br/>
  32. <div class="reference">
  33. <h5><% $_[references]|upper %></h5><br/>
  34. <% $_[reference_nfo] %><br/>
  35.  
  36. <form action='<% $URL %><% $_GET[0] %>/reference' method='post'>
  37. <div>
  38. <input type='hidden' name='review' value='<% $HIDE %>'/>
  39. <input type="hidden" name="type_thumb">
  40.  
  41. <div style='padding-top:5px'><div class='l'><img src='<% $TPL %>i/ico/thumb_up_.png' id='thumbup' alt='thumb up'/> <img src='<% $TPL %>i/ico/thumb_down_.png' id='thumbdown' alt='thumb down'/>
  42. <input type='text' name='reference' id='reference' maxlength="999" style='width:195px' value='<% $r[reference] %>' title='<% $_[leave_reference] %>'/>&nbsp;</div><div class='l'><% include file = $TPLx.'m/_/save'.$HTML %></div><div class='f'></div></div>
  43. </div>
  44. </form>
  45.  
  46.  
  47. </div>
  48. <div class='low' style='padding-left:10px'><% $_[reference_nfo2] %></div>
wiiir
jak mozesz naraz (jednoczesnie) wcisnac 2 przyciki skoro jeden przycisk to jeden obrazek, czyli moge wcisnac albo np lewy albo prawy
AndyPSV
w tym kodzie co podalem wczesniej jest to mozliwe, moglbys podac poprawiony kod? to wszystko o co prosze
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.